首页 > V2EX > V2EX-Gopher 苦 ORM 久矣,发布个使用 rawsql 节省体力的包,使用姿势与标准库基本相同
2022
06-23

V2EX-Gopher 苦 ORM 久矣,发布个使用 rawsql 节省体力的包,使用姿势与标准库基本相同

lesismal:

初衷

这是前几天看到隔壁帖子吵得热闹,一时兴起写的,还没大规模测试,感兴趣的同学欢迎来 issue/pr 骚扰。

隔壁帖子: /t/859178

项目地址

示例代码

特点:

  1. 非 ORM ,仍然是标准库的姿势使用 rawsql
  2. 简单封装了标准库 sql ,Query 相关的方法增加了一个参数来接收结果,不再需要自己处理 rows
  3. 简洁干净,目前只使用标准库,无三方依赖

直接上代码吧:

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
V2EX-Gopher 苦 ORM 久矣,发布个使用 rawsql 节省体力的包,使用姿势与标准库基本相同 - 第1张  | 牛叻网(NiuL.Net)

最后编辑:
作者:分享菌
这个作者貌似有点懒,什么都没有留下。

留下一个回复