go数据库怎么用 Go语言数据库编程GORM的基本使用详解 golang 数据库
目录
- 一、安装与初始化
- 1. 安装 GORM 及数据库驱动
- 2. 建立数据库连接
- 二、定义模型结构体
- 三、自动迁移表结构
- 四、基本 CRUD 操作
- 1. 新增数据
- 2. 查询数据
- 3. 更新数据
- 4. 删除数据
- 五、条件构造器
- 六、钩子函数(Hooks)
- 七、事务处理
- 八、日志与调试
- 九、常用配置项
- 十、
GORM是 Go 语言最流行的 ORM 框架,封装了
database/sql
,支持自动迁移、关联关系、事务等功能,开发体验接近于高层语言的 ORM。
一、安装与初始化
1. 安装 GORM 及数据库驱动
go get -u gorm.io/gormgo get -u gorm.io/driver/mysql PostgreSQL 用户: go get -u gorm.io/driver/postgres
2. 建立数据库连接
package mainimport ( “gorm.io/driver/mysql” “gorm.io/gorm” “log”)func main() dsn := “user:password@tcp(127.0.0.1:3306)/gormdb?charset=utf8mb4&parseTime=True&loc=Local” db, err := gorm.Open(mysql.Open(dsn), &gorm.Config}) if err != nil log.Fatal(“连接数据库失败:”, err) } log.Println(“连接成功”)}
二、定义模型结构体
type User struct ID uint `gorm:”primaryKey”` Name string Email string `gorm:”uniqueIndex”` Age int CreatedAt time.Time}
- • 使用 GORM 标签配置字段属性。
- • 支持自动创建
id
、created_at
等字段。
三、自动迁移表结构
db.AutoMigrate(&User})
&x2705; 会自动创建表,如果表存在则进行字段比对与升级(非破坏性)。
四、基本 CRUD 操作
1. 新增数据
user := UserName: “Alice”, Email: “alice@example.com”, Age: 25}db.Create(&user)fmt.Println(“新ID:”, user.ID)
2. 查询数据
var user Userdb.First(&user, 1) // 主键查询db.First(&user, “email = ?”, “alice@example.com”) // 条件查询
- •
First
:查询一条 - •
Find
:查询多条 - •
Where
支持链式调用:
var users []Userdb.Where(“age > ?”, 20).Order(“age desc”).Limit(10).Find(&users)
3. 更新数据
db.Model(&user).Update(“Name”, “Alice Updated”)db.Model(&user).Updates(UserName: “NewName”, Age: 28}) // 多字段
4. 删除数据
db.Delete(&user)
五、条件构造器
GORM 支持各种链式条件语句:
db.Where(“name LIKE ?”, “%alice%”).Find(&users)db.Where(“age BETWEEN ? AND ?”, 20, 30).Find(&users)db.Not(“name = ?”, “Bob”).Find(&users)
六、钩子函数(Hooks)
你可以定义技巧拦截模型的创建、更新、删除行为:
func (u User) BeforeCreate(tx gorm.DB) (err error) u.Name = “新建” + u.Name return}
七、事务处理
err := db.Transaction(func(tx gorm.DB) error if err := tx.Create(&UserName: “TxUser”}).Error; err != nil return err } if err := tx.Delete(&User}, 1).Error; err != nil return err } return nil})
八、日志与调试
GORM 支持 SQL 日志:
import “gorm.io/gorm/logger”db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config Logger: logger.Default.LogMode(logger.Info),})
九、常用配置项
配置 | 说明 |
Create ,First ,Find ,Delete ,Update |
基础 CRUD |
Where ,Order ,Limit ,Offset |
链式构造条件 |
AutoMigrate |
自动建表/更新表结构 |
Model(&Model}) |
设置操作对象 |
十、
功能 | 示例 |
创建表 | db.AutoMigrate(&User}) |
插入 | db.Create(&user) |
查询 | db.First ,db.Where().Find |
更新 | db.Model().Updates() |
删除 | db.Delete(&user) |
事务 | db.Transaction(func) |
到此这篇关于Go语言数据库编程:GORM 的基本使用的文章就介绍到这了,更多相关Go语言GORM使用内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
无论兄弟们可能感兴趣的文章:
- GO中GORM使用教程
- Golang使用gorm实现分页功能的示例代码
- Go语言中ORM框架GORM使用介绍
- Golang 使用gorm添加数据库排他锁,for update
- Go语言中使用gorm