ORM链式操作(🔥重点🔥)

基本介绍

gdb 链式操作使用方式简单灵活,是 GoFrame 框架官方推荐的数据库操作方式。链式操作可以通过数据库对象的 db.Model 方法或者事务对象的 tx.Model 方法,基于指定的数据表返回一个链式操作对象 *Model,该对象可以执行以下方法。当前方法列表可能滞后于源代码,详细的方法列表请参考接口文档: https://pkg.go.dev/github.com/gogf/gf/v2/database/gdb#Model

部分不支持的操作

以下是最新版本的支持情况

类型 Replace Save InsertIgnore InsertGetId LastInsertId Transaction RowsAffected
mysql 支持 支持 支持 支持 支持 支持 支持
mariadb 支持 支持 支持 支持 支持 支持 支持
tidb 支持 支持 支持 支持 支持 支持 支持
pgsql 不支持 支持 不支持 支持 支持 支持 支持
mssql 不支持 支持 支持 支持 不支持 支持 支持
sqlite 不支持 支持 支持 支持 支持 支持 支持
oracle 不支持 支持 支持 支持 不支持 支持 支持
dm 不支持 支持 支持 支持 支持 支持 支持
clickhouse 不支持 不支持 不支持 不支持 支持 不支持 不支持

相关文档

📄️ ORM链式操作-模型创建使用GoFrame框架中的ORM工具进行链式操作,重点讲解了模型创建、Model对象的使用以及实现链式安全的几种方式。通过使用Model、Raw方法,在默认和切换的数据库配置上创建模型对象,并探讨链式安全的实现,包括默认非链式安全、Clone方法克隆、Safe方法设置链式安全等操作技巧。

📄️ ORM链式操作-写入保存GoFrame框架中ORM链式操作的写入保存方法,包括Insert、Replace、Save等方法的使用。这些方法支持自动单条或批量的数据写入,适用于多种数据库环境,并提供详细示例帮助理解如何结合使用Data方法进行数据操作。

📄️ ORM链式操作-更新删除在GoFrame框架中进行ORM链式操作的数据更新和删除。详细阐述了使用Update和Delete方法时需要结合Where条件的重要性。此外,还探讨了通过Counter参数实现字段数值增减的特性,以及使用Increment和Decrement方法对字段进行自增自减的操作。同时,还讲解了嵌入原生SQL语句的技巧和实现软删除的方式,以确保数据处理的灵活性和安全性。

🗃️ ORM链式操作-数据查询11 个项目

🗃️ ORM链式操作-模型关联2 个项目

📄️ ORM链式操作-对象输入该文档介绍了如何在GoFrame框架中使用链式操作的对象输入功能,支持不同类型的数据参数,使得gdb具有极高的灵活性。详细说明了使用struct对象进行参数输入时的映射关系以及标签的优先级,以实现数据库ORM的有效转换。

📄️ ORM链式操作-字段过滤在使用GoFrame框架进行数据库操作时如何进行字段过滤。详细描述了Fields和FieldsEx方法的用途与示例,并深入探讨了OmitEmpty及OmitNil特性如何帮助在数据库写入过程中过滤空值数据。此外,还探讨了在数据查询过程中空值对条件参数的影响。

📄️ ORM链式操作-字段获取使用GoFrame框架中的ORM链式操作来获取数据库表字段的技巧,包括使用FieldsStr和FieldsExStr方法获取指定表的字段及排除字段的用法,支持字段前缀自定义,提升开发效率和代码可读性。

📄️ ORM链式操作-事务处理在GoFrame框架中使用事务处理对于ORM链式操作的方法。通过Transaction和TX接口,可以实现对数据库的事务性操作,确保数据的一致性和可靠性。详细讲解了使用TX接口创建Model对象的方法及其事务处理中Commit和Rollback的机制。

📄️ ORM链式操作-主从切换在GoFrame框架中使用gdb实现应用层的主从配置和读写分离。通过简单的配置,gdb可以自动进行主从切换,大幅度提高数据库的运行效率和可用性。本文还提供了一些使用Master和Slave方法自定义节点操作的示例,帮助开发者更好地应对主从同步延迟带来的问题,确保数据的即时性和准确性。

📄️ ORM链式操作-查询缓存使用GoFrame框架中的ORM进行查询缓存操作。它支持对查询结果进行缓存优化,适用于多读少写场景。文中详细介绍了缓存管理和适配,特别是如何通过Redis实现分布式缓存。还提供了示例代码展示数据表结构及其缓存效果,演示了查询缓存的实现与缓存清理功能。

🗃️ ORM链式操作-时间维护4 个项目

📄️ ORM链式操作-数据库切换在使用GoFrame框架进行ORM链式操作时切换数据库。我们通过不同的配置分组、运行时更改单例对象的数据库配置、使用Schema方法进行链式操作,以及通过表名中带数据库名称来实现多种数据库切换方案。这些方法为开发者提供了灵活的数据库操作方式。

📄️ ORM链式操作-Hook特性在GoFrame框架中使用Hook特性,为Model对象绑定CRUD钩子,从而实现对数据库操作的增强和优化。文中详细介绍了相关定义、Hook注册方法以及使用示例,通过挂钩函数对查询操作进行了演示。

📄️ ORM链式操作-Handler特性在GoFrame框架中使用ORM链式操作实现Handler特性,通过示例展示了如何复用常见的查询逻辑和分页操作,从而简化代码,提高开发效率。Handler特性允许开发者定义通用逻辑并应用于数据库模型,实现更为简洁和可维护的代码结构。

📄️ ORM链式操作-悲观锁 & 乐观锁在GoFrame框架中如何通过链式操作实现悲观锁和乐观锁。悲观锁用于在每次数据访问时上锁以避免冲突,常用于高并发场景;而乐观锁则通过版本号机制检查数据更新,适用于多读少写的场合。详细分析了适用场景、实现方法及锁机制的优缺点,帮助开发者优化数据库性能。