导入
如果想要使用GORM需要导入GORM本身和一个数据库驱动。
go get gorm.io/gorm # 导入GORM本身
go get gorm.io/driver/sqlite # 导入sqlite数据库驱动
这里使用sqlite,如果想要使用其他的数据库可以导入其他的数据库驱动。
模型
表名
默认使用结构体名的复数形式作为表名。如果想要自定义表名需要绑定一个名为TableName的方法。
字段
结构体中的每一个属性都是字段,会根据snake_name确定表中的字段。在Gorm中使用Id字段表示主键,使用字段 CreatedAt 和 UpdatedAt 来自动跟踪记录的创建和更新时间。
可以通过标签控制字段的读写或者一些更高级的配置。
连接数据库
使用gorm.Open(数据库驱动.Open(链接地址),配置项)连接。其中,针对不同的数据库驱动,链接地址形式是不一样的。
Mysql链接地址
username:password@tcp(ip:port)/数据库名?连接参数
- username是用户名
- password是密码
- tcp表示使用的是tcp协议,可以根据实际情况修改
- ip表示数据库所在的ip地址
- port表示数据库所在的主机的数据库通讯端口
- 连接参数:连接时的附属参数,比如设置时区等等。需要注意的是,如果想要正确处理
time.Time类型,必须添加parseTime=true参数,否则会出现因无法正确处理Time而报错的问题。
Sqlite链接地址
使用sqlite.Open(文件存放路径)作为gorm.Open()的第一个参数就可以连接指定位置的数据库了。
注意:如果文件路径中包含文件夹且这些文件夹不存在则数据库连接失败,因此必须先判断该路径下的所有文件夹是否都存在然后再连接数据库。