本文主要是介绍三十一、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)
}
这篇关于三十一、gorm快速入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!