当前位置: 首页 > news >正文

三十一、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)//最大空闲连接,一般为最大连接数/2db.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 []Accountif 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 []Accountif err := db.Where("id=?", 1).Find(&accounts).Error; err != nil {fmt.Println(err)}fmt.Println(accounts)
}
9、分页查询
func main() {db := connDB()var accounts []Accountif err := db.Where("id=?", 1).Offset(0).Limit(10).Find(&accounts).Error; err != nil {fmt.Println(err)}fmt.Println(accounts)
}


http://www.mrgr.cn/news/17932.html

相关文章:

  • AI Agent开发实战1-Agent开发绪论与国产大模型的架构与工作机制原理
  • 自闭症自言自语会好吗
  • Vue(十一)默认插槽、具名插槽、作用域插槽
  • 同事用10分钟给公司做了一套数据大屏,实力选手非他莫属!
  • 实现一个队列
  • 设施农业气象站
  • js-浏览器沙箱
  • LongWriter环境安装推理测试
  • sportbugs报告路径在linux和windows中的配置差异
  • 要点(Key Ideas)
  • 基于PCL实现RGB-D图像转换为点云
  • Mybatis-Mapper扫描 与 代理
  • 工业储能柜内部运行状态监测装置
  • LaViT:这也行,微软提出直接用上一层的注意力权重生成当前层的注意力权重 | CVPR 2024
  • 海外广告投放成功的关键点有哪些?
  • 无法正常安装Sass预处理器
  • FreeRTOS线程数据传递---消息队列
  • 龙芯+FreeRTOS+LVGL实战笔记(新)——02准备工程和驱动文件
  • Text Control 控件教程:文档查看器设置渲染模式
  • YOLOv8可视化predict预测阶段如何调整标签框大小