代码
package main
import (
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"log"
)
// orm结构
type Student struct {
Num int `gorm:"primaryKey"`
Name string `gorm:"type:varchar(32);not null;primaryKey"`
Class int `gorm:"type:int(5)"`
Grade int `gorm:"type:int(5)"`
Age int `gorm:"type:int(4)"`
}
func main() {
host := "xx.xx.xx.xx"
port := 3306
username := "uuuu"
password := "pppp"
dbname := "dddd"
// 设置连接指令
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?parseTime=true", username, password, host, port, dbname)
// 连接mysql
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
log.Fatal(err)
}
// 自动创建表
db.AutoMigrate(&Student{})
// 插入数据,使用切片
var stdnts = []Student{ {Num:121, Name:"xiaohua", Class: 2, Grade: 1 , Age:12},
{Num:111, Name:"xiaoqing", Class: 1, Grade: 1 , Age:12},
{Num:112, Name:"xiaolan", Class: 1, Grade: 1 , Age:12},
{Num:113, Name:"xiaoming", Class: 1, Grade: 1 , Age:12},
}
db.Create(&stdnts)
// 查询数据
var stdnts_2 []Student
db.Where(&Student{Grade: 1, Class: 1}).Find(&stdnts_2)
log.Println(stdnts_2)
// 修改数据,先查出完整的数据
var stdnt Student
db.Where(&Student{Num: 111}).Find(&stdnt)
// 对数据进行修改,更新。
stdnt.Class = 3
db.Save(stdnt)
}
运行程序。
需要修改代码中的主机地址、用户名、密码等信息。注意创建go.mod文件,使用go mod tidy下载依赖。完成后才可执行。联网问题可通过设置 GOPROXY=https://goproxy.cn 环境变量解决。

数据库

发表回复