实战-使用Gorm进行增删改查 | 青训营
什么是Gorm
Gorm是用于Go编程语言的对象关系映射库,他允许开发者使用面向对象的方式来操作关系型数据库中的数据库而不需要编写SQL语句,可用简化数据库操作
DSN
DSN数据库源名称,是用来指定数据库连接的字符串,在gorm中,需要使用DSN来配置数据库连接。不同的数据库可能有不同的DSN格式,以下是Mysql的DSN例子:
user:password@tcp(host:port)/database?charset=utf8mb4&parseTime=True&loc=Local
// 把user、password替换成mysql的user和password
实战
- 安装,在终端输入指令
go get -u github.com/jinzhu/gorm
- 导包
package main
import (
"fmt"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
- 写结构体,这个结构体里的属性即是表的列
type UserInfo struct {
ID uint
Name string
Gender string
Hobby string
}
- 连接数据库,写DSN,用用户名,密码和数据库名称替换root,password,dbname
db, err := gorm.Open("mysql", "root:password@(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local")
if err!= nil{
panic(err)
}
defer db.Close()
- 建表,AutoMigrate可用根据结构体来在数据库中创建对应的表
db.AutoMigrate(&UserInfo{})
- 增,先创建结构体的实例,再使用db.Create创建
u1 := UserInfo{1, "枯藤", "男", "篮球"}
u2 := UserInfo{2, "topgoer.com", "女", "足球"}
db.Create(&u1)
db.Create(&u2)
- 删
db.Delete(&u)
- 改
db.Model(&u).Update("hobby", "双色球") //将爱好改成双色球
- 查
var u = new(UserInfo)
db.First(u) //获得第一条记录,按主键排序
fmt.Printf("%#v\n", u) //输出
var uu UserInfo
db.Find(&uu, "hobby=?", "足球") //查询hobby为足球的第一条记录
fmt.Printf("%#v\n", uu)
个人心得
Gorm是一个非常简单,容易入手的映射库,简化了数据库连接,数据库操作,让程序员更专注于代码的实现