Gorm和Xorm区别

2 篇文章 0 订阅
1 篇文章 0 订阅

Gorm和Xorm傻傻分不清楚,二者都是Go语言的ORM库。

Gorm

文档连接:http://gorm.book.jasperxu.com/
1、hook机制(Before/After Create/Save/Updaye/Delete/Find)
2、对象关系Has One,Has Many,Belongs To,Many To Many,Polymorphism
3、热加载
4、支持原生sql在这里插入代码片
5、支持事务:在创建,更新,查询,删除时将被调用,如果任何回调返回错误,gorm将停止未来操作并回滚所有更改。
6、链式api
7、支持的数据库有:mysql、postgre、sqlite、sqlserver
8、内置日志记录器
Gorm有内置的日志记录器支持,默认情况下,它会打印发生的错误

// 启用Logger,显示详细日志
db.LogMode(true)

// 禁用日志记录器,不显示任何日志
db.LogMode(false)

// 调试单个操作,显示此操作的详细日志
db.Debug().Where("name = ?", "jinzhu").First(&User{})

Xorm

文档连接:https://lunny.gitbooks.io/xorm-manual-zh-cn/index.html
下载:go get github.com/go-xorm/xorm
1、支持的数据库有:Mysql、MyMysql、Postgre、SQlite、Mssql
2、支持事务:当使用事务处理时,需要创建Session对象
3、链式api
4、支持原始SQL语句和ORM操作的混合执行
5、查询缓存
xorm内置了一致性缓存支持,不过默认并没有开启。要开启缓存,需要在engine创建完后进行配置,如: 启用一个全局的内存缓存

cacher := xorm.NewLRUCacher(xorm.NewMemoryStore(), 1000)
engine.SetDefaultCacher(cacher)

6、可根据数据库反转生成代码,即根据数据库自动生成xorm的结构体
7、级联加载
8、提供sql语句日志输出
9、支持批量查询处理
10、自动化的读写分离/主从式

Gorm文档比Xorm文档要详细,目前我只用过Xorm进行开发。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值