使用 GORM连接数据库,并实现增删改查操作 | 青训营

105 阅读3分钟

写在前面

通过青训营的学习,了解到了GORM库,GORM是go的ORM库,可以通过该库对数据库进行增删改查等操作,本文是对GORM的初体验的记录。

一、GORM的安装

首先需要安装gorm库,在命令行窗口中输入 go get -u gorm.io/gorm 安装GORM库。

p1.jpg

由于本机安装的数据库为mysql,因此还需要安装gorm对应的mysql驱动,通过在命令行窗口中输入 go get -u gorm.io/driver/mysql来安装驱动

p2.jpg

二、在数据库中创建数据表

创建经典的user数据表,数据表包括id属性,int类型,作为主键,name属性varchar类型,age属性,int类型,email属性,varchar类型。

p3.jpg

三、创建Model

定义了User结构并实现了TableName接口以便能够方便地进行增删改查操作,采用驼峰命名,会自动匹配数据库中对应的列名,重写了TableName方法,保证User对应数据库中的user表,如果不重写,那么默认对应users表。

type User struct {  
ID int  
Name string  
Age int  
Email string  
}  
func (User) TableName() string {  
return "user"  
}

四、连接数据库

接下来就是连接mysql数据库,需要使用gorm.Open函数进行数据库的连接,通过dsn参数传入数据库连接的相关信息,该参数为字符串,包含数据库用户、密码、端口、编码等信息,还需要传入gorm.Config的指针。

dsn := user + ":" + pass + "@tcp(127.0.0.1:3306)/gormtest?charset=utf8mb4&parseTime=True&loc=Local"  
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})

五、添加用户

首先进行单个用户的添加,使用Create函数进行数据的插入,其中需要传入一个User的指针。该函数会返回一个result对象,可以通过该对象查看执行的状态。

new_user := User{1, "GGBond", 20, "abc@qq.com"}  
result := db.Create(&new_user)

还可以一次性添加多个用户,比如可以向Create函数中传入一个User数组的指针,实现一次添加多个用户,Create函数会根据传入数组中的元素属性进行添加。

var user_array = []User{{2, "WangXiao", 21, "bbc@qq.com"},  
{3, "WangYiao", 21, "bbc@qq.com"},  
{4, "WangMiao", 24, "bbc@qq.com"}}  
res := db.Create(&user_array)

添加后结果如下

p9.jpg

六、删除用户

可以进行按条件删除,通过调用db的Where设置删除条件,然后调用Delete执行删除操作。以删除id为1的用户为例。

var recv_user User  
db.Where("id = ?", 1).Delete(&recv_user)

七、修改用户

可以通过调用Model选择用户,然后调用Where设置修改条件,最后调用Update指明需要修改的属性和值,以将id为2的用户年龄修改为11为例

upd_user := User{2, "WangXiao", 15, "bbb@qq.com"}  
db.Model(&upd_user).Where("id = ?", 2).Update("age", 11)

修改结果如下

p13.jpg

八、查询用户

可以通过Where函数设置查询条件,然后调用First进行查询 以查找年龄为21的用户为例

var usrr User  
db.Where("age = ?", 21).First(&usrr)

p15.jpg

九、总结

通过使用GORM进行增删改查的过程,体会到了GORM框架的便捷性,通过该框架可以很大程度上免除一些比较繁杂的SQL语句,可以很快提高效率,同时GORM提供了十分详尽的文档,在实践过程中,GORM的文档给了很大的帮助,我在这个过程中也学会了如何阅读文档,收获很多。