前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每日一库:Gorm简介

每日一库:Gorm简介

作者头像
孟斯特
发布2023-10-16 19:49:17
5810
发布2023-10-16 19:49:17
举报
文章被收录于专栏:code人生

GORM(Go Object-Relational Mapping)是一个用于Go语言的ORM库,它提供了一种简单、优雅的方式来操作数据库。GORM支持多种数据库,包括MySQL、PostgreSQL、SQLite和SQL Server。以下是GORM的一些主要特性:

1.全功能ORM:GORM支持全功能的ORM操作,包括关联、事务、迁移、批量插入、预加载、复合主键等。2.开箱即用:GORM的设计目标是开箱即用,它提供了许多默认行为,使得开发者可以快速上手。3.链式操作:GORM支持链式操作,这使得代码更加简洁和易读。4.自动迁移:GORM可以自动迁移数据库,这意味着你可以通过代码来创建、更新和删除数据库表。5.Hooks:GORM支持在执行数据库操作前后执行自定义的Hook函数。6.预加载:GORM支持预加载,这意味着你可以一次性查询出关联的数据,而不需要多次查询。7.事务:GORM支持数据库事务,你可以很容易地开始、提交或回滚一个事务。8.日志:GORM提供了详细的日志,你可以看到每一次的数据库操作。9.扩展性:GORM提供了许多接口,你可以通过实现这些接口来扩展GORM的功能。10.测试:GORM提供了方便的测试工具,你可以很容易地为你的代码编写测试。

以下是一些基本的GORM操作:

1. 安装GORM

在Go项目中,您可以使用以下命令来安装GORM:

代码语言:javascript
复制
$ go get -u gorm.io/gorm

2. 连接到数据库

GORM支持多种类型的数据库,例如MySQL,SQLite,PostgreSQL等。以下是一个连接到MySQL数据库的示例:

代码语言:javascript
复制
package main

import (
    "gorm.io/driver/mysql"
    "gorm.io/gorm"
)

func main() {
    dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
}

3. 定义模型

在GORM中,您可以通过定义Go结构体来创建数据库表。例如:

代码语言:javascript
复制
type Product struct {
    gorm.Model
    Code  string
    Price uint
}

然后,您可以使用AutoMigrate函数来自动创建表:

代码语言:javascript
复制
db.AutoMigrate(&Product{})

4. 创建记录

使用Create函数可以在数据库中创建新的记录:

代码语言:javascript
复制
db.Create(&Product{Code: "D42", Price: 100})

5. 读取记录

GORM提供了多种方法来查询数据库中的记录。例如:

代码语言:javascript
复制
// 获取第一条记录,按主键排序
var product Product
db.First(&product, 1) // 查询id为1的product

// 获取最后一条记录
db.Last(&product)

// 获取所有记录
var products []Product
db.Find(&products)

// 使用条件查询
db.Where("price = ?", 100).First(&product)

6. 更新记录

您可以使用SaveUpdates函数来更新数据库中的记录:

代码语言:javascript
复制
// 更新product的price
db.Model(&product).Update("Price", 200)

// 更新多个字段
db.Model(&product).Updates(Product{Price: 200, Code: "F42"}) // 非零字段
db.Model(&product).Updates(map[string]interface{}{"Price": 200, "Code": "F42"})

7. 删除记录

使用Delete函数可以删除数据库中的记录:

代码语言:javascript
复制
db.Delete(&product, 1)

以上是GORM的基本使用方法,更多详细的信息和高级用法,可以参考GORM的官方文档:http://gorm.io/docs/index.html。

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)[1]进行许可,使用时请注明出处。 author: mengbin[2] blog: mengbin[3] github: mengbin92[4] cnblogs: 恋水无意[5]

References

[1] 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0): https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh [2] mengbin: mengbin1992@outlook.com [3] mengbin: https://mengbin.top [4] mengbin92: https://mengbin92.github.io/ [5] 恋水无意: https://www.cnblogs.com/lianshuiwuyi/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 孟斯特 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 安装GORM
  • 2. 连接到数据库
  • 3. 定义模型
  • 4. 创建记录
  • 5. 读取记录
  • 6. 更新记录
  • 7. 删除记录
    • References
    相关产品与服务
    数据库
    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档