- 安裝GORM庫(kù) go get -u gorm.io/gorm
- MySQL驅(qū)動(dòng) go get -u gorm.io/driver/mysql
- 連接數(shù)據(jù)庫(kù) dsn := "root:root@tcp(127.0.0.1:3306)/goadmin?charset=utf8mb4&parseTime=True&loc=Local"http://goadmin為數(shù)據(jù)庫(kù)名
- 定義模型以及基本操作:模型 通過(guò) struct 定義模型 映射到數(shù)據(jù)庫(kù)中的表 字段映射到列
- 自定義表名和列名
-
package main
import(
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
//自定義列名
type User struct{
ID uint `gorm:"primaryKey"`//uint系列/ int系列/int32
ServerIP string `gorm:"column:server_ip"`//映射到不同字段名--當(dāng)前字段名與表的列名不一樣時(shí)
ServerPort string `gorm:"column:server_port"`
}
//自定義表名
func (User)TableName() string{
return "user0"
}
func main(){
//建立數(shù)據(jù)庫(kù)的連接
dsn := "ims:123456@tcp(192.168.0.26:3306)/ibcf?charset=utf8mb4&parseTime=True&loc=Local"
db,err := gorm.Open(mysql.Open(dsn),&gorm.Config{})//第二個(gè)參數(shù)為配置文件
if err != nil{
log.Fatal("數(shù)據(jù)庫(kù)連接失敗:",err)
}
fmt.Println("數(shù)據(jù)庫(kù)連接成功!")
//創(chuàng)建一個(gè)User類型-user
user := User{
ID:2,
ServerIP:"192.168.0.26",
ServerPort:"8080"
}
db.Create(&user)//相當(dāng)于INSERT
//讀取
db.First(&user,1)//將讀取到數(shù)據(jù)存到user中
//查詢
db.Where("ServerIP = ?","192.168.0.26").First(&user,1)
//db.Where("ServerIP = ? AND ServerPort = ?").First(&user,1)
fmt.Println(db)
//修改
db.Model(&user).Updates(User{ServerIP:"192.168.0.2",ServerPort:"0000"})
db.Model(&user).Updates("ServerIP","100.0.0.0")//只修改一個(gè)字段
//按條件修改
db.Model(&User{}).Where("ServerPort = ?","9012").Update("ServerPort",db.Exec("ServerPort = ?","9013"))
//刪除
db.Delete(&user,1)//按主鍵刪除
db.Where("ServerPort = ?","0000").Delete(&User{})//根據(jù)條件刪除
}