学习成本低,一次学会可在go和java中使用,脱离代码松耦合(符合企业规范),维护优化方便
engine.Asc("id").Desc("time").Find(&orders)
和Gormdb.First(&user).Limit(10).Find(&users).GetErrors()
GoMybatis 基于Go标准库sql驱动和govaluate表达式及反射实现,初始化时分析编译mapper xml的逻辑使用反射写入自定义struct的func里.达到内存空间换运行时间的性能优化
-支持事务
-支持可插拔分离式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() //关闭事务
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