lesismal:
初衷
这是前几天看到隔壁帖子吵得热闹,一时兴起写的,还没大规模测试,感兴趣的同学欢迎来 issue/pr 骚扰。
隔壁帖子: /t/859178
项目地址
示例代码
特点:
- 非 ORM ,仍然是标准库的姿势使用 rawsql
- 简单封装了标准库 sql ,Query 相关的方法增加了一个参数来接收结果,不再需要自己处理 rows
- 简洁干净,目前只使用标准库,无三方依赖
直接上代码吧:
db, err := sqlw.Open("mysql", "test:123qwe@tcp(localhost:3306)/sqlw_test", "db")
if err != nil {
log.Fatal(err)
}
var dst examples.ModelForTest
err = db.QueryRow(&dst, `select * from sqlw_test.sqlw_test`)
if err != nil {
log.Fatal(err)
}
log.Printf("dst: %v", dst)
var dsts []*examples.ModelForTest
err = db.QueryRow(&dsts, `select * from sqlw_test.sqlw_test`)
if err != nil {
log.Fatal(err)
}
log.Printf("dst: %v", dsts )
db.Prepare|sql.Stmt, db.Begin|Tx 也类似,保持了标准库的简洁基础上省去了自己遍历 rows 去 scan 的麻烦,代码量节省很多
from V2EX-最新主题 https://ift.tt/Wb8sJtX
- 本文固定链接: https://niul.net/245152.html
- 转载请注明: 分享菌 于 牛叻网(NiuL.Net) 发表