gorm实现mysql数据库的增删改查

gorm实现mysql数据库的增删改查

代码

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 环境变量解决。

数据库

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注