gorm简介
什么是gorm?
gorm是一个强大的Go编程语言中的ORM(对象关系映射)库。ORM是一种技术,它将数据库表中的数据映射到面向对象的模型中,从而简化了数据库操作。
gorm的特点
gorm具有许多令人称赞的特点,使其成为Go开发者的首选ORM库之一。
1. 简单易用
gorm提供了简洁而直观的API,使得操作数据库变得非常容易。无论是创建、读取、更新还是删除数据,都可以通过简单的方法调用实现。
2. 支持多种数据库
gorm支持多种常见的数据库系统,包括MySQL、PostgreSQL、SQLite等。这使得开发者可以在不同的项目中使用不同的数据库系统,而无需更改代码。
3. 自动迁移
gorm具有强大的自动迁移功能,可以根据定义的模型自动创建、修改数据库表结构。这简化了数据库结构的管理,减少了手动处理数据库迁移的工作量。
4. 事务支持
gorm支持事务操作,保证了数据库操作的原子性和一致性。在复杂的业务逻辑中,事务可以确保一系列操作要么全部成功,要么全部回滚,避免了数据不一致的问题。
5. 强大的查询功能
gorm提供了丰富的查询功能,可以根据条件过滤数据、排序结果、限制返回的记录数等。开发者可以轻松地编写复杂的查询语句,满足各种业务需求。 ————————————————
版权声明:本文为CSDN博主「晴天码字」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/all_about_W…
ORM 框架 Gorm 初体验
通过阅读 gorm.cn/docs/#Insta… 尝试运行 Gorm 的示例代码
- Gorm 框架地址: github.com/go-gorm/gor…
Install
go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite
Quick Start
package main
import (
"gorm.io/gorm"
"gorm.io/driver/sqlite"
)
定义gorm model
type Product struct {
gorm.Model
Code string
Price uint
}
连接数据库
func main() {
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
创建表
在定义好数据模型之后,需要通过GORM来创建数据库表。可以使用AutoMigrate方法来创建表:
// Migrate the schema
db.AutoMigrate(&Product{})
这里传递的参数是Product类型的指针,表示要创建Product表。
创建数据
// Create
db.Create(&Product{Code: "D42", Price: 100})
支持创建1条或多条数据,创建1条时是一个对象,创建多条时是一个切片
查询数据
// Read
var product Product
db.First(&product, 1) // find product with integer primary key
db.First(&product, "code = ?", "D42") // find product with code D42
更新数据
可以使用Model方法定位要更新的记录,并通过Update方法更新:
// Update - update product's price to 200
db.Model(&product).Update("Price", 200)
// Update - update multiple fields
db.Model(&product).Updates(Product{Price: 200, Code: "F42"}) // non-zero fields
db.Model(&product).Updates(map[string]interface{}{"Price": 200, "Code": "F42"})
删除数据
// Delete - delete product
db.Delete(&product, 1)
}
Gorm的约定(默认)
Gorm使用名为ID的字段作为主键
使用结构体的蛇形复数作为表名
字段名的蛇形作为列名
使用CreatedAt、UpdatedAt字段作为创建、更新时间