一个Go开源ORM框架 - gorp

jopen 11年前

gorp是一个ORM框架. 但其实Go还没有真正的对象, 至少没有一个经典的感觉和Smalltalk/Java一样的,这是"O". gorp不知道任何你struct之间的关系(以后会实现,现在还在TODO list中). 所以"R"也是有质疑的(但是我使用这个名字,因为感觉上更贴切).

"M"是没有问题的. 给定一些Go结构和一个数据库, gorp应该可以减少你的重复代码.

希望gorp能节省你的时间并简化从数据库获取数据的苦活来帮助你把精力投入到算法上而不是基础设施上面.

gorp提供一个应该被每个数据库厂商实现的Dialect接口, Dialect支持如下数据库:

  • MySQL
  • PostgreSQL
  • sqlite3

特点

  • 通过API或tag绑定struct字段到表的列
  • 支持事务
  • 从struct建立db架构正向工程(来做更好的单元测试)
  • insert/update/delete的前后提供hook
  • 自动为struct生成generate insert/update/delete语句
  • 在insert后自动绑定自增主键到struct
  • 通过主键删除
  • 通过主键选择
  • 可选的SQL跟踪日志
  • 绑定任意SQL查询到struct
  • 可通过一个version column来为update和delete实现乐观锁

项目主页:http://www.open-open.com/lib/view/home/1358497633567