gorm的简单使用

本文详细介绍了如何使用 GORM 框架在 Go 语言中连接 MySQL 数据库并进行 CRUD 操作。从数据库连接配置开始,展示了如何创建表、保存数据、查询、修改和删除记录。同时,还演示了自定义列名、条件查询等高级功能,是 Go 开发者进行数据库操作的实用教程。
摘要由CSDN通过智能技术生成
一、连接到数据库
(1) MySQL
import (
  "gorm.io/driver/mysql"
  "gorm.io/gorm"
)

func main() {
  // 参考 https://github.com/go-sql-driver/mysql#dsn-data-source-name 获取详情	dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
  db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
}	//想要正确的处理 time.Time ,需要带上 parseTime=true 参数
(2) 自定义驱动(自己导入对应的数据库驱动器)
import (
  _ "example.com/my_mysql_driver"
  "gorm.io/gorm"
)

db, err := gorm.Open(mysql.New(mysql.Config{
  DriverName: "my_mysql_driver",
  DSN: "gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True&loc=Local", 
}), &gorm.Config{})
二、CRUD接口
(1) 创建

1、通过创建Gorm.Model模块(结构体),映射对应变量

//默认列名为变量名
type User struct{
    gorm.Model
    Name string `gorm:"varchar(10);not null"`
    Age int `gorm:"int"`
    
}//gorm在数据库创建数据表时,使用蛇形小写命名,如UserName->user_name

// 自定义列名

type User struct {
    gorm.Model
    Name string `gorm:"column:username"`
    Age int `gorm:"column:age"`
}

  1. 自动创建表及保存数据

    //1.1 自动在数据库下创建表名为users数据表
    db.AutoMigrate(&User{})	
    //1.2 自定义表名
    db.Table("user_information").CreateTable(&User{})
    //2. 保存数据
    NewUser := User{
        Name: "Tony",
        Age: 18,
    }
    db.Save(&NewUser)
    
(2)查询
// 1.1 查询"name"为"Tony"的用户,并用result捕获整个结构体
result := User{}
//	得到第一个满足条件的数据
db.Where("name = ?", "Tony").First(&result)
//	得到所有满足条件的数据
db.Where("name <> ?", "Tony").Find(&users)

// 用IN查询
db.Where("name IN ?", []string{"name1", "name2"}).Find(&results)

// 用LIKE查询
db.Where("name LIKE ?", "%To%").Find(&results)

// 用AND查询
db.Where("name = ? AND age >= ?", "jinzhu", "22").Find(&results)

// 使用结构体查询
db.Where(&User{Name: "jinzhu", Age: 0}).Find(&reults)

(3)修改
db.Where("name = ?", NewUser.Name).First(&NewUser)
NewUser.Name = "Tom"
db.Save(&NewUser)
// 将NewUser的Name修改成"Tom"
(4)删除
db.Delete(&NewUser)  // 为软删除,将字段中"deleted_at"设为当前时间,在数据库中仍存在该调数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值