做co网站重庆妇科医院咨询
news/
2025/9/30 16:42:53/
文章来源:
做co网站,重庆妇科医院咨询,外贸公司名字大全,网页设计与制作教程书电子版Go语言学习笔记#xff1a;GORM 介绍及快速入门#xff0c;简单查询
前言
GORM 是一个用 GoLang 语言编写的 ORM#xff08;对象关系映射#xff09;库。它被设计为开发者友好的方式来进行数据库操作。GORM 提供了一种高级的 API 来处理数据库的 CRUD#xff08;创建、读…Go语言学习笔记GORM 介绍及快速入门简单查询
前言
GORM 是一个用 GoLang 语言编写的 ORM对象关系映射库。它被设计为开发者友好的方式来进行数据库操作。GORM 提供了一种高级的 API 来处理数据库的 CRUD创建、读取、更新、删除操作它支持主流的关系型数据库如 MySQL、PostgreSQL、SQLite 和 Microsoft SQL Server。
文档
GORM 指南
特性
使用 GORM开发者可以使用 Go 的结构体来表示数据库中的表结构体字段表示表的列。GORM 利用结构体和方法来映射数据库操作大大减少了手写 SQL 查询的需要简化了数据处理流程。
以下是 GORM 的一些主要特点 自动迁移能够帮助管理数据库的迁移例如自动创建、修改表结构。 CRUD 接口提供了简单的方法来进行创建、读取、更新和删除操作。 关联支持一对一、一对多和多对多等关联关系并可以很容易地操作相关联的数据。 钩子允许在特定的操作发生前后执行自定义逻辑。 事务对数据库事务提供了支持保持数据的完整性。 范围允许定义常用的查询以便可以重用。 SQL 构建器即使是复杂的SQL查询也可以通过GORM提供的接口构建。 日志记录所有的SQL操作方便开发者调试和优化。 扩展性可以通过插件扩展其功能。
安装
go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite快速入门
例如使用 GORM你可以这样定义一个模型和进行查询
// 定义一个模型
type Product struct {gorm.ModelCode stringPrice uint
}// 初始化
db, err : gorm.Open(sqlite3, test.db)
if err ! nil {panic(数据库连接失败)
}
defer db.Close()// 自动迁移
db.AutoMigrate(Product{})// 创建
db.Create(Product{Code: L1212, Price: 1000})// 读取
var product Product
db.First(product, 1) // 查询id为1的product
db.First(product, code ?, L1212) // 查询code为L1212的product// 更新 - 更新product的price为2000
db.Model(product).Update(Price, 2000)// 删除 - 删除product
db.Delete(product)GORM 通过这种方式简化了数据库的操作并使得代码更加简洁、易读和易维护 问题探索
selest操作如何做单一值的获取、单行获取、列表获取
获取单一值
获取单一字段的值,例如获取用户姓名可以使用Pluck方法。
var name string
result : db.Model(User{}).Where(id ?, 1).Pluck(name, name)
if result.Error ! nil {// 处理错误
}获取单行
获取单个记录可以使用First或Take方法。
var user User
result : db.Where(id ?, 1).First(user)
if result.Error ! nil {// 处理错误
}获取列表
获取多个记录可以使用Find方法。
var users []User
result : db.Where(active ?, true).Find(users)
if result.Error ! nil {// 处理错误
}User是一个模型类与数据库表中的列匹配。db是GORM数据库连接的实例。
错误处理
错误处理非常重要。检查result.Error确定操作是否成功。 如果返回的错误是gorm.ErrRecordNotFound表示查询没有找到任何记录。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923074.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!