Golang: Database: Data Access Technologies

 12th January 2021 at 5:23pm

Go 在查询数据库时的选型。

一般编程语言中会有 ORM 和非 ORM 方式去访问数据库,比如 Python 中的 Django ORM 和 mysqlclient。对于这类语言,ORM 有一个好处是兼容了多种数据库。

但 Go 标准库中的 sql 模块就已经定义了一个规范,要求各种数据库的 driver 遵循。

这篇 文章 也认为 ORM 仅在简单的 CRUD 中节省了工作量,但是增加了学习 ORM 库的成本。

我倾向于用:

  • 内置的 database/sql,搭配 sqlx 扩展
  • jmoiron/sqlx:对 Golang 的 SQL 模块的扩展
  • jackc/pgx:PG 的 driver

ORM 的话,GORM 是目前最流行的选择。