ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 概述 **Github**:[https://github.com/dengsgo/taurus](https://github.com/dengsgo/taurus) **Issue**: [https://github.com/dengsgo/taurus/issues](https://github.com/dengsgo/taurus/issues) taurus 是 Golang 的一款关系型数据库 ORM ( Object Relational Mapping ) 库。它简单、快速、高效,所见即所得。拥有着友好的使用接口,使用者无需关心底层逻辑,甚至于无需编写任何 Go 代码即可使用它。 ## 特性 相比于其他的 ORM 库,taurus 有以下显著的特性: - 无需编写 Go 代码。taurus 会根据 `描述文件` 自动生成模板代码; - 没有反射。taursu 核心逻辑抛弃了运行时反射的思路,将代码提前到编译前生成,因此运行速度更快,更安全; - 无需传入数据表的结构体手动绑定数据。 taurus 会为所有生成的数据表实体结构自动绑定一系列的接口方法,只需简单 `New{table}TM()` 获取实例指针,便可使用`Find()`、`First()`、`Gets()` 等等一系列方法,不用再额外传入绑定的参数; - 告别手写 SQL、绑定参数。taurus 实现了强大的 `QueryBuilder` ,几乎可以完成所有的 SQL 语句生成,无论简单亦或复杂。你只需使用它提供的友好API接口方法,taurus 会为你自动完成剩下的所有工作; - 强大的表关系管理。taurus 能为你管理无穷多的表关系,一旦关系被建立,你就能使用 `Fill({表关系名字})` 将关系到的数据绑定在自己的结构体上,而你无需再做其他任何事情; - 聪明的事务支持。taurus 仅提供一个事务方法,屏蔽掉所有底层实现,成功会自动提交,出错就自动回滚。 - 自定义扩展。taurus 的部件(比如:JSON 编解码、Log 日志、Event 事件管理器)都是面向接口编程的,这意味着你可以用自己实现相应接口的部件,来轻松替换 taurus 对应的部件。 ## 多主多从、集群支持 taurus 支持多种数据库模式。从单机到一主多从、多主多从、数据库集群,甚至于多种数据库类型的多个集群混用,都不在话下。 在你的程序 `init ` 方法里将所有的数据库源注册到 taurus 中,taurus 会管理和使用它。 [查看详细文档](./) ## 分表支持 taurus 提供了对分表的底层支持。你可以根据需求分别对不同的表注册不同的分表算法,taurus 会在生成 SQL 时聪明地选择合适的表名进行操作。 [查看详细文档](./) ## 扩展性 taurus 支持 ## 支持的数据库类型 受益于官方 `database/sql` 包,taurus 支持多种数据库,包括 MySQL、SQLite、PostgreSQL、Oracle。你可以根据实际需求,选择任意数据库的任意一款驱动程序注册到 taurus 中。 taurus 推荐的驱动包: // TODO