【golang自学之路(一)】如何通过go modules进行导包

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


问题

在这里插入图片描述

在学习完golang简单语法之后,开始接触go的orm(object relational mapping)框架。在使用框架时候出现报错。

代码如下:

package main

import (
	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/mysql"
)

// UserInfo 用户信息
type UserInfo struct {
	ID     uint
	Name   string
	Gender string
	Hobby  string
}

func main() {
	db, err := gorm.Open("mysql", "****:****@(localhost)/db1?charset=utf8mb4&parseTime=True&loc=Local")
	if err != nil {
		panic(err)
	}
	defer db.Close()

	// 自动迁移
	db.AutoMigrate(&UserInfo{})
}

报错信息如下:

PS D:\work> go build -o server main.go server.go
no required module provides package main.go: go.mod file not found in current directory or any parent directory; see 'go help modules'
no required module provides package server.go: go.mod file not found in current directory or any parent directory; see 'go help modules'

解决


日志错误表明,尝试运行一个Go程序(orm_test1.go),它依赖于github.com/jinzhu/gorm和github.com/jinzhu/gorm/dialects/mysql这两个包,但是在当前目录或其任何父目录中都没有找到go.mod文件。go.mod文件是Go Modules的核心,用于定义项目依赖的包和版本。

所以我们需要4步就能解决一下问题:

1.go mod init 生成 go.mod 文件

D:\work\newGolangData\gorm> go mod init .\orm_test1.go

运行日志:
在这里插入图片描述

2.下载依赖包

go get -u github.com/jinzhu/gorm  
go get -u github.com/jinzhu/gorm/dialects/mysql
//-u标志表示更新到最新版本

初始化完成后,Go会创建一个go.mod文件。接下来,你可以使用go get命令来下载你需要的依赖包

运行日志:
在这里插入图片描述
这个运行结果是密码错误的意思

3.重新运行go文件

go run orm_test1.go

在这里插入图片描述
成功 gorm自动迁移(根据结构体自动创建数据库表)
在这里插入图片描述

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值