基本介绍
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对象绑定CURD钩子,从而实现对数据库操作的增强和优化。文中详细介绍了相关定义、Hook注册方法以及使用示例,通过挂钩函数对查询操作进行了演示。
📄️ ORM链式操作-Handler特性
在GoFrame框架中使用ORM链式操作实现Handler特性,通过示例展示了如何复用常见的查询逻辑和分页操作,从而简化代码,提高开发效率。Handler特性允许开发者定义通用逻辑并应用于数据库模型,实现更为简洁和可维护的代码结构。
📄️ ORM链式操作-悲观锁 & 乐观锁
在GoFrame框架中如何通过链式操作实现悲观锁和乐观锁。悲观锁用于在每次数据访问时上锁以避免冲突,常用于高并发场景;而乐观锁则通过版本号机制检查数据更新,适用于多读少写的场合。详细分析了适用场景、实现方法及锁机制的优缺点,帮助开发者优化数据库性能。