gin和gorm框架基础操作及项目实践(下) | 青训营

157 阅读1分钟

一.项目实践

书接上文,我们已经将项目的结构构建好了,接下来我们开始实践

1.使用方式

在使用gorm框架时,我们分三步进行

1.引入gorm包

import "github.com/jinzhu/gorm"

2.导入数据库的驱动

import _ "github.com/go-sql-driver/mysql"

为了方便记住导入路径,GORM包装了一些驱动: import _ "github.com/jinzhu/gorm/dialects/mysql"

// import _ "github.com/jinzhu/gorm/dialects/postgres"

// import _ "github.com/jinzhu/gorm/dialects/sqlite"

// import _ "github.com/jinzhu/gorm/dialects/mssql"

根据自己选用的数据库来选择

可以使用以下两种形式来使用mysql:

1、 import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" )

2、 import ( "github.com/jinzhu/gorm" _ "github.com/go-sql-driver/mysql" )

3.连接数据库

1、 最简单形式 func main() { db, err := gorm.Open("mysql", "user:password@/dbname?charset=utf8&parseTime=True&loc=Local") defer db.Close() }

2、 公司形式 func initDB(info config.MysqlInfo) *gorm.DB { db, err := gorm.Open("mysql", info.DSN) if err != nil { panic(err) } db.SetLogger(gormlog.NewLogger()) db.LogMode(true) db.DB().SetMaxOpenConns(info.MaxOpen) db.DB().SetMaxIdleConns(info.MaxIdle) db.DB().SetConnMaxLifetime(time.Second * 300) if err = db.DB().Ping(); err != nil { panic(err) } return db }

2.查询操作

(1).简单查询

image.png

(2).select查询

指定要从数据库检索需要的字段,默认情况下,将选择所有的字段

image.png

(3).where查询

image.png

3.修改操作

使用save将更新所有字段,即使它没有改变

`db.First(&user); user.Name="jinzhu"; user.Age=18; db.Save(&user);

UPDATE users SET name='jinzhu', age=18, birthday='2016-01-01', updated_at = '2013-11-17 21:34:10' WHERE id=111; `

4.删除操作

删除记录时,需要确保其主要字段具有值,GORM将使用主键删除记录,如果主要字段为空,GORM将删除模型的所有记录

`// 删除存在的记录 db.Delete(&email); delete from email where id=10;

// 为Delete语句添加额外的SQL选项 db.Set("gorm:delete_option", "OPTION (OPTIMIZE FOR UNKNOWN)").Delete(&email); DELETE from emails where id=10 OPTION (OPTIMIZE FOR UNKNOWN);

`