初看上去,将数据存储到关系数据库里面似乎并不是一件轻松的事情,有非常多的工作要做。对不少语言来说,这一判断是正确的,然而在实际中,SQL与应用之间通常存在着一些第三方库,这些库在面向对象编程语言中一般称为对象-关系映射器(object-relational mapper,ORM)。诸如Java的Hibernate
以及Ruby的ActiveRecord
之类的ORM都会把关系数据库中的表映射为编程语言中的对象,但为表创建映射并不是面向对象编程语言的特权,很多其他编程语言也拥有类似的映射器,比如,Scala有Activate
框架,Haskell有Groundhog
库。
Go同样也拥有类似的关系映射器(relational mapper),本节接下来将介绍其中一些映射器(因为ORM这一术语对于Go来说并不是特别准确,所以我们将使用“关系映射器”而不是“ORM”来称呼接下来提到的Go映射器)。