码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Go语言入门心法(九): 引入三方依赖



    Go语言入门心法(一): 基础语法

    Go语言入门心法(二): 结构体

    Go语言入门心法(三): 接口

    Go语言入门心法(四): 异常体系

     Go语言入门心法(五): 函数

    Go语言入门心法(六): HTTP面向客户端|服务端编程

    Go语言入门心法(八): mysql驱动安装报错onnection failed

    Go语言入门心法(九): 引入三方依赖

    Go语言入门心法(十):Go语言操作MYSQL(CRUD)

    Go语言入门心法(十一): 文件处理

    Go语言入门心法(十二): GORM映射框架

    Go语言入门心法(十三): 反射认知升维


    http://golang.org/pkg/database/sql/
    Examples · go-sql-driver/mysql Wiki · GitHub
    GitHub - VividCortex/go-database-sql-tutorial: A tutorial for Go's database/sql package



    一: go依赖三方模块

    当项目中需要引入三方依赖,此时要让依赖被我们项目模块识别,需要作系列操作,本文我们一引入mysql数据库驱动为例,说明引入操作的步骤,开发工具使用的是Goland IDEA;

    1.1 如在项目中引入:_ "github.com/go-sql-driver/mysql"

    1. package main
    2. import (
    3. "database/sql"
    4. "fmt"
    5. "log"
    6. // 注册驱动器 _下划线表示执行驱动中的init函数,不使用其他函数
    7. _ "github.com/go-sql-driver/mysql"
    8. )
    9. /*
    10. go语言连接mysql数据库操作:
    11. */
    12. func main() {
    13. db, err := sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/tope-pay-user")
    14. if err != nil {
    15. fmt.Println("数据库连接异常: ", err)
    16. }
    17. // 延迟执行Closer()函数
    18. defer db.Close()
    19. // 验证连接的可用性
    20. err = db.Ping()
    21. if err != nil {
    22. log.Fatal("数据库连接失败:", err)
    23. }
    24. log.Println("数据库连接成功")
    25. }

    如果遇到如下错误:Cannot resolve symbol 'github.com' 说明你项目环境有问题;


    一般来说国内不能直接访问golang官方包:所以需要做个代理就是设置GOPROX环境变量

    设置了Go语言的环境变量:

    go env -w GO111MODULE=on
     
    go env -w GOPROXY=https://goproxy.cn,direct

    设置完后,在GoLand控制台执行go mod download在执行下载mod报错:

    报错信息是连接不上官方网址,可是我明明走了代理不访问官方网址,走https://goproxy.cn的啊。开始查找原因。

    golang 配置go env参数时报错
    warning: go env -w GOPROXY=… does not override conflicting OS environment variable
    解决方法:
    说明当前配置已在系统环境变量配置文件中配置,使用go env -w 方式无效,可以直接通过修改环境变量配置文件中的参数来修改

    二: 查看自己本地环境配置情况


    GO111MODULE 环境变量用于开启或关闭 Go 语言中的模块支持,它有 off、on、auto 三个可选值,默认为 auto。

    GO111MODULE=off
    无模块支持,go 会从 $GOPATH 文件夹和 vendor 目录中寻找依赖项。

    GO111MODULE=on
    模块支持,go 忽略 $GOPATH 文件夹,只根据 go.mod 下载依赖。

    GO111MODULE=auto
    在 $GOPATH/src 外层且根目录有 go.mod 文件时,开启模块支持;否者无模块支持。


    三:  配置go env参数时报错寻根

    warning: go env -w GOPROXY=… does not override conflicting OS environment variable


    说明我们一家设置了goproxy代理变量,本文是在goland开发工具中设置GOPROXY变量,如下图所示:

    那么如果需要在cmd中设置,可以去掉IDEA中设置即可;

    四: 在cmd中设置变量遇 missing go.sum entry; to add it: 错误

    类似这种的错误: missing go.sum entry; to add it: 

     D:\program_file\go_workspace> go mod tidy
    go: go.mod file not found in current directory or any parent directory; see 'go help modules'

    这个意思go.mod文件中不包括当前运行该命令的目录,运行该命令目录要么是go.mod文件什么的模块目录,或者是该运行目录下的子目录; 


    我们在,项目根目录文件夹下创建一个go.mod文件,该文件由goland自动生成: 在项目"根"目录下:鼠标右键-->new-->Go Modules File 点击该选项,就会在根目录下生成一个go.mod文件

    go.mod文件内容如下:

    // module 默认自动生成的文项目文件夹的名称

    module  go_workspace   // 模块名称可以改为项目文件夹的相同或者时子目录

    再次运行相关命令Ok
    PS D:\program_file\go_workspace> go mod tidy
    go: go.mod file not found in current directory or any parent directory; see 'go help modules'
    PS D:\program_file\go_workspace> cd .\org.jd.data\
    PS D:\program_file\go_workspace\org.jd.data> go mod tidy
    PS D:\program_file\go_workspace\org.jd.data> go mod tidy
    PS D:\program_file\go_workspace\org.jd.data> cd ..
    PS D:\program_file\go_workspace> go mod tidy
    PS D:\program_file\go_workspace> go mod tidy
    PS D:\program_file\go_workspace> go mod tidy
    PS D:\program_file\go_workspace> go mod tidy
     

    五: 在该目录中引入三方依赖即可

    引入语法:

    require (
        // 该处引入三方依赖
        github.com/go-sql-driver/mysql v1.7.1
    )

    如下载安装redis最新依赖:

    PS D:\program_file\go_workspace> go install github.com/go-redis/redis@latest
    go: downloading github.com/go-redis/redis v6.15.9+incompatible

    或者运行:下载redis三方依赖

    PS D:\program_file\go_workspace>go get github.com/go-redis/redis


    最后三方依赖引入效果:

    引入成功后,在idea工具中可以看到引入的第三方模块

     六: 运行项目效果:




    更多详细看官方文档: Go模块依赖解决详细文档|及打包发布解决方案




     

  • 相关阅读:
    DTDX991A 61430001-UW 自由IOT引入人工智能功能
    蓝桥等考Python组别十四级008
    SpringBoot+Lombok+Builder实现任意个数属性的对象构造
    Dapr实现.Net Grpc服务之间的发布和订阅,并采用WebApi类似的事件订阅方式
    java servlet校园闲置商品交易平台的设计与实现源码
    太简单了,一文彻底搞懂Jenkins的用法
    leetcode:1957. 删除字符使字符串变好
    Python的安装教程(Windows)
    北邮21硕后端开发笔记
    恶劣天气 3D 目标检测数据集收集
  • 原文地址:https://blog.csdn.net/u014635374/article/details/133903903
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号