go语言orm之gorose全新版本20低调发布
号称go语言版本的laravel's eloquent, 发布了久违了2.0版本, 新版本做了很大的改进和升级, 下面我们一起来看一下新版本的特性. 架构调整gorose 2.0版本做了彻底的重构, 拥有全新的架构. 架构如图: gorose 2.0 采用模块化架构, 通过interface的api通信,严格的上层依赖下层.每一个模块都可以拆卸, 甚至可以自定义为自己喜欢的样子. 主模块 engin gorose 初始化配置模块, 可以全局保存并复用session 真正操作数据库底层模块, 所有的操作, 最终都会走到这里来获取或修改数据orm 对象关系映射模块, 所有的orm操作, 都在这里完成builder 构建终极执行的sql模块, 可以构建任何数据库的sql, 但要符合database/sql包的接口子模块 driver 数据库驱动模块, 被engin和builder依赖, 根据驱动来搞事情binder 结果集绑定模块, 所有的返回结果集都在这里其他语言入手姿势php: 使用过laravel的orm就可以快速上手使用python: 使用过orator orm的用户,可以快速上手ruby: 使用过rails的orm就可以快速上手支持驱动mysql : https://github.com/go-sql-dri... sqlite3 : https://github.com/mattn/go-s... postgres : https://github.com/lib/pq oracle : https://github.com/mattn/go-oci8 mssql : https://github.com/denisenkom... clickhouse : https://github.com/kshvakov/c... 特色连接池链式调用支持传入struct,map或字符串表名读写分离集群支持海量数据自动分块处理一键开启事务,自动回滚和提交模块化架构,自由扩展官方文档最新版2.x文档 api预览db.Table().Fields().Where().GroupBy().Having().OrderBy.Limit().Select()db.Table().Data().Insert()db.Table().Data().Where().Update()db.Table().Where().Delete()最佳实践sql DROP TABLE IF EXISTS "users";CREATE TABLE "users" ( "uid" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "name" TEXT NOT NULL, "age" integer NOT NULL);INSERT INTO "users" VALUES (1, 'gorose', 18);INSERT INTO "users" VALUES (2, 'goroom', 18);INSERT INTO "users" VALUES (3, 'fizzday', 18);实战代码 ...