各主流的golang orm介绍,活跃的orm有gorm、xorm、gorose等 – SuperIT


本站和网页 https://www.msnao.com/2021/09/07/5047.html 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

各主流的golang orm介绍,活跃的orm有gorm、xorm、gorose等 – SuperIT
SuperIT
专业IT技术社区之后端大数据与Devops
首页
编程语言
架构
go
java
python
kafka
php
大数据
Manager
链接收集
学习项目
apache项目
开源项目
java项目
关于我们
联系我们
站点地图
登录
微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者
各主流的golang orm介绍,活跃的orm有gorm、xorm、gorose等
go aide_941
7个月前 (09-07)
6℃
当前较为主流/活跃的orm有gorm、xorm、gorose等
xorm
文档
github
document
godoc
支持的数据库有: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语句日志输出
支持批量查询处理
// 每次处理100条
// SELECT * FROM user Limit 0, 100
// SELECT * FROM user Limit 101, 100
err := engine.BufferSize(100).Iterate(&User{Name:name}, func(idx int, bean interface{}) error {
user := bean.(*User)
return nil
})
自动化的读写分离/主从式
dataSourceNameSlice := []string{masterDataSourceName, slave1DataSourceName, slave2DataSourceName}
engineGroup, err := xorm.NewEngineGroup(driverName, dataSourceNameSlice)
gorm
文档
github
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
查询操作
// Get first record, order by primary key
db.First(&user)
//// SELECT * FROM users ORDER BY id LIMIT 1;
// plain sql
db.Where("name = ? AND age >= ?", "jinzhu", "22").Find(&users)
// map
db.Where(&User{Name: "jinzhu", Age: 20}).First(&user)
//// SELECT * FROM users WHERE name = "jinzhu" AND age = 20 LIMIT 1;
gorose
文档
github
document
支持的数据库有:mysql、postgres、sqlite、mssql、oracle
链式api
同时连接多个数据库和切换
支持原生sql操作
支持批量查询处理
事务性
User.Fields("id, name").Where("id",">",2).Chunk(2, func(data []map[string]interface{}) {
// for _,item := range data {
// fmt.Println(item)
// }
fmt.Println(data)
})
upper/db
同时支持nosql和sql的orm不多,这是其中之一 (另一个是beedb,已经四年没有更新了). upper/db对多种数据库进行封装,提供统一的接口进行CRUD.
文档
github
document or tour
支持的数据库有:PostgreSQL, MySQL, SQLite, MSSQL, QL and MongoDB.
不支持根据数据库类生成数据库表等DCL操作,只有DQL,DML
与大部分orm 框架相同,提供连接池
对RDBMS支持事务性
sess, err := postgresql.Open(settings)
if err != nil {
log.Fatalf("db.Open(): %q\n", err)
defer sess.Close()
var books []Book
err = sess.Collection("books").Find().All(&books)
总结
相似性
各orm支持的数据库都基本相同(主流数据库都支持)
支持事务性、链式查询等
差异
xorm、gorose支持批量查询处理
xorm支持主从式读写分离
gorm支持热加载
gorose便于在多个数据库切换
文档全面性gorm>xorm>gorose
转载请注明:SuperIT » 各主流的golang orm介绍,活跃的orm有gorm、xorm、gorose等
喜欢 (2)or分享 (0)
golanggormgoroseormxorm
java程序启动时cpu和负载高探索
你能不能设计出一个完美的分布式系统?
Golang 性能大杀器之性能剖析 PProf
golang用etcd实现服务注册和发现
Golang 推荐的命名规范
Golang开发新手常犯的50个错误
Golang 性能大杀器之性能剖析 PProfgolang用etcd实现服务注册和发现Golang 推荐的命名规范Golang开发新手常犯的50个错误Golang精编100题Golang开发新手常犯的50个错误Golang build 填坑笔记Go Context的使用
订阅号“superit.tech”
近期文章
棋牌游戏项目资源,SpringBoot源码
JVM调试和优化(一)服务内存占用高然后CPU高最后宕机
JVM_性能调优
又有小白同事来问我JVM性能调优等问题,我再总结一下给他
JVM类别详解
JVM调优参数设置详解
jstat命令详解
JVM调优其实就是通过调节JVM参数,即对垃圾收集器和内存分配的调优,以达到更高的吞吐和性能
7 款开源的 ETL 工具
普通 Java 项目打包成 Jar 包并运行, 打包jar老是打包找不到主类MANIFEST.MF copyto到src目录下
分类目录分类目录
选择分类目录
dev (46)
php (27)
高并发 (19)
devops (223)
aliyun (3)
ansible (6)
cdn (1)
docker (34)
ffmpeg (4)
git (5)
gitlab (2)
jenkins (8)
linux (39)
lua (1)
mac (2)
maven (3)
monitor (3)
mysql (6)
nginx (22)
rabbitmq (1)
redis (4)
shell (15)
slb (41)
supervisor (7)
zabbix (2)
持续集成 (8)
漏洞修复 (6)
激活码(注册码) (1)
go (25)
IOS (11)
ui (4)
java (77)
aop (1)
config (2)
dubbo (7)
jdbc (2)
jmeter (1)
jpa (1)
mybatis (7)
spring (14)
springboot (7)
springmvc (1)
tomcat (2)
manager (1)
python (25)
SEO (1)
tensorflow (2)
video (2)
个人操作 (2)
前端 (6)
原创 (5)
填坑记 (1)
大数据 (239)
clickhouse (7)
elasticsearch (40)
flink (4)
Flume (19)
hadoop (16)
hbase (5)
hive (9)
kafka (67)
kibana (7)
Logstash (3)
spark (12)
sphinx (3)
sqoop (6)
storm (10)
zookeeper (11)
日志采集 (29)
职位要求 (3)
我的操作 (2)
未分类 (29)
架构 (49)
测试 (2)
链接 (9)
随记 (7)
标签redis (6)安装 (6)gitlab (5)git (5)操作 (5)一步步教你nginx+lvs之教程 (5)优化 (4)compose (4)调优 (4)性能 (4)maven (4)centos (4)jvm (4)并发 (4)负载 (4)Spark (4)服务 (4)python (4)新手 (4)使用 (4)分布式 (4)管理工具 (4)日志 (4)启动 (3)raft (3)选举 (3)参数 (3)swarm (3)topic (3)总结 (3)内核 (3)解决方案 (3)shell (3)监控 (3)kibana (3)sphinx (3)storm (3)计算 (3)数据 (3)Logstash (3)
       
QQ:1219204@qq.com 京ICP备20002829号-1 版权声明