当前位置:  开发笔记 > 编程语言 > 正文

golang 是否需要orm

golang需要orm,当前较为主流活跃的orm有gorm、xorm、gorose等。xorm、gorose支持批量查询处理;xorm支持主从式读写分离;gorm支持热加载;gorose便于在多个数据库切换。

支持的数据库有:mysql、mymysql、postgres、tidb、sqlite、mssql、oracle

事务性支持

链式api

has, err := engine.Where("name = ?", name).Desc("id").Get(&user)
err := engine.Where(builder.NotIn("a", 1, 2).And(builder.In("b", "c", "d", "e"))).Find(&users)

支持原生sql操作

查询缓存

可根据数据库反转生成代码

级联加载

提供sql语句日志输出

支持批量查询处理

gorm

hook机制(Before/After Create/Save/Update/Delete/Find)

对象关系Has One, Has Many, Belongs To, Many To Many, Polymorphism

热加载

支持原生sql操作

事务性

链式api

tx := db.Where("name = ?", "jinzhu").Where("age = ?", 20).Find(&users)

支持的数据库有:mysql、postgre、sqlite、sqlserver

查询操作

gorose

支持的数据库有:mysql、postgres、sqlite、mssql、oracle

链式api

同时连接多个数据库和切换

支持原生sql操作

支持批量查询处理

事务性

相似性

各orm支持的数据库都基本相同(主流数据库都支持)

支持事务性、链式查询等

差异

xorm、gorose支持批量查询处理

xorm支持主从式读写分离

gorm支持热加载

gorose便于在多个数据库切换

文档全面性gorm>xorm>gorose

以上就是golang 是否需要orm的详细内容,更多请关注其它相关文章!

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有