Vuetify.js

GoMybatis

SQL mapper framework for Golang一个集(功能完备,高扩展,高性能,轻量)于一身的ORM框架
开发文档 源码 GitHub

High performance,Low learning time

相比编程式ORM框架更规范,灵活
color_lens
动态SQL

学习成本低,一次学会可在go和java中使用,脱离代码松耦合(符合企业规范),维护优化方便

  • -支持逻辑标签 resultMap,select,update,insert,delete,trim,if,set,foreach,bind,sql,include
  • -和ORM框架Xorm,Gorm比较,此框架有各自的查询规则学习成本高,Xorm engine.Asc("id").Desc("time").Find(&orders)和Gormdb.First(&user).Limit(10).Find(&users).GetErrors()
  • -和ORM框架GoBatis比较,此框架使用注释(//@select *)标记xml,需要中间代码(生成***.go代码文件)执行查询操作。而GoMybatis只需xml定义Struct方法,无需中间代码
点击了解动态SQL
flash_on
极速

GoMybatis 基于Go标准库sql驱动和govaluate表达式及反射实现,初始化时分析编译mapper xml的逻辑使用反射写入自定义struct的func里.达到内存空间换运行时间的性能优化

  • 得益于无锁并发,并发协程数为1000,总请求数为10万,执行查询可达 总耗时0.22s,Tps = 456621/s 详见GoMybatisEngine_test.go
  • 单协程编码SQL 10万次 Tps = 403226/s 详见 GoMybatisSqlBuilder_test
  • 单协程解码数据10万次 Tps = 199996/s 详见 GoMybatisSqlResultDecoder_test.go
  • 压测代码在GitHub中查看(测试机器 Cpu 6 core,mem 16GB,256G Disk,System Windows10)
    build
    事务

    -支持事务

    -支持可插拔分离式session,指定远程session代理操作事务(指多个微服务连接一个单数据库或主从库),也支持分布式事务数据库(TiDB...),让单体-分布式应用有一个平滑过渡期

    事务支持
    //启动事务 session := exampleActivityMapper.NewSession() session.Begin() //开启事务 var activityBean = Activity{ Id: "170", Name: "rs168-8", } //session 传值则使用已经创建的session,传nil则新建一个session var updateNum , e = exampleActivityMapperImpl.UpdateById(&session, activityBean) fmt.Println("updateNum=", updateNum) if e != nil { panic(e) } session.Commit() //提交事务 session.Close() //关闭事务
    欢迎GitHub点赞支持我们 点我
    各种数据库驱动支持
             Mysql: github.com/go-sql-driver/mysql
             MyMysql: github.com/ziutek/mymysql/godrv
             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
             CockroachDB(Postgres): github.com/lib/pq
                       
    联系我们
    Cras facilisis mi vitae nunc lobortis pharetra. Nulla volutpat tincidunt ornare. QQ 347284221 place 杭州 email zhuxiujia@qq.com