sqlite

sqlite驱动有很多,但是绝大多数都是cgo写的,也就是纯粹c语言,不支持交叉编译,或者一些并不遵循database/sql标准. cgo驱动https://github.com/mattn/go-sqlite3这个应该是最出名的,用的也多,但是不支持交叉编译,windows上需要安装gcc才能编译,非常不方便.

本文推荐的是另一个modernc.org/sqlite但是他在github上边没有,而是在gitlab上,用起来也不方便,于是乎我就搬到了github 包的地址github.com/logoove/sqlite,这个库是唯一不使用cgo,支持标准database/sql.

所以在gorm,xrom,以及goframe中都是可以直接使用.而不用改任何代码.

需要说明,官方的在驱动名称使用的是sqlite,但是我在移植过程中改成了sqlite3,这样完全就可以替换掉mattn的sqlite包,他们名称就一致了

在goframe框架中

goframe在国内算是非常好用的一个框架,但是sqlite驱动支持官方推荐的都需要cgo支持,如果使用github.com/logoove/sqlite不用更改任何代码就能直接使用在orm中,只需要载入

`_ github.com/logoove/sqlite`

即可,这样goframe框架orm就支持sqlite了,不该任何goframe代码.

标准非orm中使用例子

"github.com/jmoiron/sqlx"
_ "github.com/logoove/sqlite"
var db *sqlx.DB
    db, _ = sqlx.Open("sqlite3","users.db")
    rows:=[]Users{}
    db.Select(&rows,"SELECT id,name FROM users ORDER BY id")

sqlx标准方法都支持,交叉编译也很棒,推荐不要再使用mattn的包了.