主页 > TokenPocket钱包下载 > 「TokenPocket苹果下载」Gorm框架 教程

「TokenPocket苹果下载」Gorm框架 教程

admin TokenPocket钱包下载 2022年07月01日

因此,使用 Gorm 操作数据库的时候一般不需要直接手写 SQL 语句代码。

// struct 中的字段 和 Mysql 表的字段一一对应 // 在这里 User 类型可以代表 Mysql user表 type User struct { ID int64 // 主键 // 通过在字段后面的标签说明,定义golang字段和表字段的关系 // 例如 `gorm:"column:username"` 标签说明含义是: Mysql 表的列名为 username // 这里 golang 定义的 Username 变量和 Mysql 表字段 username 一样,他们的名字可以不一样。 Username string `gorm:"column:username"` Password string `gorm:"column:password"` CreateTime int64 `gorm:"column:createtime"` } // 设置表名,可以通过给 struct 类型定义 TableName 函数,返回当前 struct 绑定的 Mysql 表名是什么 func (u User) TableName() string { // 绑定 Mysql 表名为 users return "users" } func main() { // 配置 MySQL 连接参数 username := "root" //账号 password := "123456" //密码 host := "127.0.0.1" //数据库地址,可以是Ip或者域名 port := 3306 //数据库端口 Dbname := "codebaoku" //数据库名 // 通过前面的数据库参数,拼接 Mysql DSN,其实就是数据库连接串(数据源名称) // Mysql dsn格式: {username}:{password}@tcp({host}:{port})/{Dbname}?charset=utf8&parseTime=True&loc=Local // 类似{username}使用花括号包着的名字都是需要替换的参数 dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local", username, password, host, port, Dbname) // 连接 Mysql db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { panic("连接数据库失败, error=" + err.Error()) } // 定义一个用户,并初始化数据 u := User{ Username:"codebaoku", Password:"123456", CreateTime:time.Now().Unix(), } // 插入一条用户数据 // 下面代码会自动生成SQL语句:INSERT INTO `users` (`username`,`password`,`createtime`) VALUES ('codebaoku','123456','1540824823') if err := db.Create(&u).Error; err != nil { fmt.Println("插入失败", err) return } // 查询并返回第一条数据 // 定义需要保存数据的struct变量 u = User{} // 自动生成sql: SELECT * FROM `users` WHERE (username = 'codebaoku') LIMIT 1 result := db.Where("username = ?", "codebaoku").First(&u) if errors.Is(result.Error, gorm.ErrRecordNotFound) { fmt.Println("找不到记录") return } // 打印查询到的数据 fmt.Println(u.Username,u.Password) // 更新数据库记录 // 自动生成Sql语句: UPDATE `users` SET `password` = '654321' WHERE (username = 'codebaoku') db.Model(&User{}).Where("username = ?", "codebaoku").Update("password", "654321") // 删除数据库记录 // 自动生成Sql: DELETE FROM `users` WHERE (username = 'codebaoku') db.Where("username = ?", "codebaoku").Delete(&User{}) } 3. Gorm框架 错误处理

Gorm 在执行数据库操作的时候,如果出现错误,则会更新 gorm.DB 的 Error 属性,Error 属性默认为 nil,因此在执行数据库操作后检测下 Error 属性是否为 nil ,即可知道有没有错误发生。

// 插入记录后,检测 Error 是否为 nil if err := db.Create(u).Error; err != nil { fmt.Println("插入失败", err) return }

下一节:Gorm框架 模型定义Gorm框架 教程

CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID', `username` varchar(30) NOT NULL COMMENT '账号', `password` varchar(100) NOT NULL COMMENT '密码', `createtime` int(10) NOT NULL DEFAULT 0 COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8

代码示例:

下面是范例中用到的数据库中 users 表的结构定义:

//安装 MySQL 驱动包 go get -u gorm.io/driver/mysql //安装 Gorm 包 go get -u gorm.io/gorm 2)导入依赖包 import ( "gorm.io/driver/mysql" "gorm.io/gorm " ) 3)操作 Mysql 范例

使用 Gorm 库操作 Mysql 步骤:

Gorm 主要用途是把 struct类型 和 数据库表 进行映射,使用简单方便。

Gorm 是 Go 语言中实现对象和数据库映射的框架,可以有效地提高开发数据库应用的效率。

另外,Github 的 fork:https://github.com/jinzhu/gorm 使用也非常广泛。

以下,主要介绍 Gorm 操作 MySQL 数据库。

广告位
标签: golang   教程   gorm