gorm的环境配置与使用 | 青训营;

99 阅读3分钟

由于这次活动我选择大项目的开发 和伙伴们选择比demo更进一步 虽然还是没有微服务相关的内容 (看了上一届 码如磐石 也就是一等奖的同学的项目 差的还是很多很多)

反正我学过数据库 但是从没实践过 只是训练过sql语句 了解过关系数据库 知道一些数据库安全和优化,索引等等的都有了解 不过我也没想过可以在数据库上再封装一层 我以为有了可视化的界面 (datagrip)这样的编辑器使用起来 已经很方便了

实际上之前也从来没想过数据库怎么与代码真正的进行交互

那么 正题开始

首先想用gorm 就要在项目的终端输入

js

go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite 

这样就会自己建立好相应的依赖 可能会出现需要调整依赖的情况 不过都不难 只要go.mod这里不出问题就好

我使用的是mysql 所以也需要建立mysql所需要的驱动

go get -u gorm.io/driver/mysql

当然也需要电脑上有mysql的环境 如果使用1024进行编程的话 所有环境都已经配好了

不过建立这些也是重要的项目经验

这里引用gorm 操作mysql_gorm mysql_勤天的博客-CSDN博客

连接mysql主要有两个步骤:

1.配置DSN (Data Source Name)

gorm库使用dsn作为连接数据库的参数,dsn翻译过来就叫数据源名称,用来描述数据库连接信息。一般都包含数据库连接地址,账号,密码之类的信息。

DSN的格式

[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...&paramN=valueN]

//mysql dsn格式
//涉及参数:
//username   数据库账号
//password   数据库密码
//host       数据库连接地址,可以是Ip或者域名
//port       数据库端口
//Dbname     数据库名
username:password@tcp(host:port)/Dbname?charset=utf8&parseTime=True&loc=Local
 
//填上参数后的例子
//username = root
//password = 123456
//host     = localhost
//port     = 3306
//Dbname   = tizi365
//后面K/V键值对参数含义为:
//  charset=utf8 客户端字符集为utf8
//  parseTime=true 支持把数据库datetime和date类型转换为golang的time.Time类型
//  loc=Local 使用系统本地时区
root:123456@tcp(localhost:3306)/tizi365?charset=utf8&parseTime=True&loc=Local
 
//gorm 设置mysql连接超时参数
//开发的时候经常需要设置数据库连接超时参数,gorm是通过dsn的timeout参数配置
//例如,设置10秒后连接超时,timeout=10s
//下面是完成的例子
root:123456@tcp(localhost:3306)/tizi365?charset=utf8&parseTime=True&loc=Local&timeout=10s
 
//设置读写超时时间
// readTimeout - 读超时时间,0代表不限制
// writeTimeout - 写超时时间,0代表不限制
root:123456@tcp(localhost:3306)/tizi365?charset=utf8&parseTime=True&loc=Local&timeout=10s&readTimeout=30s&writeTimeout=60s

当然由于我们进行项目开发还需要对各种功能进行分包等等 很多东西都要自己摸索才行 gorm 在查询东西时非常方便 再与gin进行联动后更可以很快的实现数据的传输