xorm
xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。
说明
- 本库是基于原版 xorm:https://github.com/go-xorm/xorm 的定制增强版本,由于本定制版有第三方库依赖(原版xorm无任何第三方库依赖),原版xorm要保持对第三方库零依赖特性,所以只好单独开了本Github库。
- 本库的相关定制功能是为了解决更简单的进行复杂SQL调用和一些特殊业务需求场景而开发的。
- 本定制版ORM相关核心功能和原版保持一致,会跟随原版xorm更新。
- 定制功能采用针对原版弱侵入性代码实现。
特性
- 支持Struct和数据库表之间的灵活映射,并支持自动同步
- 事务支持
- 同时支持原始SQL语句和ORM操作的混合执行
- 使用连写来简化调用
- 支持使用Id, In, Where, Limit, Join, Having, Table, Sql, Cols等函数和结构体等方式作为条件
- 支持级联加载Struct
- 支持类ibatis方式配置SQL语句(支持xml配置文件和pongo2模板2种方式)
- 支持动态SQL功能
- 支持一次批量混合执行多个CRUD操作,并返回多个结果集
- 支持数据库查询结果直接返回Json字符串和xml字符串
- 支持SqlMap配置文件和SqlTemplate模板密文存储和解析
- 支持缓存
- 支持根据数据库自动生成xorm的结构体
- 支持记录版本(即乐观锁)
驱动支持
目前支持的Go数据库驱动和对应的数据库如下:
- Mysql: github.com/go-sql-driver/mysql
- MyMysql: github.com/ziutek/mymysql
- Postgres: github.com/lib/pq
- Tidb: github.com/pingcap/tidb
- SQLite: github.com/mattn/go-sqlite3
- MsSql: github.com/denisenkom/go-mssqldb
- MsSql: github.com/lunny/godbc
- Oracle: github.com/mattn/go-oci8 (试验性支持)
- ql: github.com/cznic/ql (试验性支持)
安装
推荐使用 gopm 进行安装:
gopm get github.com/xormplus/xorm
或者您也可以使用go工具进行安装:
go get -u github.com/xormplus/xorm
讨论
请加入QQ群:280360085 进行讨论。API设计相关建议可联系本人QQ:50892683