三十一、gorm快速入门

目录

一、构造环境

1、gorm环境

2、mysql连接

二、编写操作代码 

3、创建连接函数

4、创建结构体

5、查询调用

6、动态表名

7、添加条件查询

9、分页查询


一、构造环境

在终端中输入以下命令

1、gorm环境
go get gorm.io/gorm
2、mysql连接
go get gorm.io/driver/mysql

二、编写操作代码 

3、创建连接函数
func connDB() *gorm.DB {
	mysqlDB, err := gorm.Open(mysql.Open("账号:密码@tcp(localhost:3306)/cms_account?charset=utf8mb4&parseTime=True&loc=Local"))
	if err != nil {
		panic(err)
	}
	db, err := mysqlDB.DB()
	if err != nil {
		panic(err)
	}
	//最大连接数
	db.SetMaxOpenConns(4)
	//最大空闲连接,一般为最大连接数/2
	db.SetMaxIdleConns(2)
	mysqlDB = mysqlDB.Debug()
	return mysqlDB
}
4、创建结构体

必须与account表字段与字段类型保持一致

type Account struct {
	ID        int64     `gorm:"column:id;primaryKey;autoIncrement:true"`
	UserId    string    `gorm:"column:user_id"`
	Password  string    `gorm:"column:password"`
	Nickname  string    `gorm:"column:nickname"`
	CreatedAt time.Time `gorm:"column:created_at"`
	UpdatedAt time.Time `gorm:"column:updated_at"`
}
5、查询调用
func main() {
	db := connDB()
	var accounts []Account
	if err := db.Table("account").Find(&accounts).Error; err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(accounts)
}
6、动态表名

动态表面的好处可以动态的获取表名进行灵活的查询,比如一些流水表的名字后面会加上日期的这里是改写了TableName方法,使用此方法后就删除.Table("account")调用

func (a Account) TableName() string {
	table := "account"
	return table
}
7、添加条件查询
func main() {
	db := connDB()
	var accounts []Account
	if err := db.Where("id=?", 1).Find(&accounts).Error; err != nil {
		fmt.Println(err)
	}
	fmt.Println(accounts)
}
9、分页查询
func main() {
	db := connDB()
	var accounts []Account
	if err := db.Where("id=?", 1).Offset(0).Limit(10).Find(&accounts).Error; err != nil {
		fmt.Println(err)
	}
	fmt.Println(accounts)
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值