使用sqlc库可以将sql查询代码直接生成golang方法直接调用,提高查询速率的同时可以有效避免sql查询代码出错。
本文环境windows,数据库为mysql数据库。

安装

1、由于slqc在windows平台下不能使用,所以我在win10上使用docker进行操作。
2、sqlc库GitHub地址:
https://github.com/kyleconroy/sqlc

官方文档地址:
https://docs.sqlc.dev/en/stable/tutorials/getting-started-mysql.html

3、docker安装命令:

docker pull kjconroy/sqlc

简单使用

1、初始化生成yaml配置文件。
命令:

docker run --rm -v "%cd%:/src" -w /src kjconroy/sqlc init

将"%cd%"换成自己的项目目录
示例:

docker run --rm -v "d:\ProgramPro\workspace\go\test:/src" -w /src kjconroy/sqlc init

2、编写配置文件:

version: 1
packages:
  - path: "./db/sqlc"
    name: "tutorial"
    engine: "mysql"
    schema: "./db/migration"
    queries: "./db/query"

path:输出的查询文件存放路径
engine:数据库名称,目前支持postgres和mysql
queries:sql查询语句存放路径
schema:迁移文件存放目录

3、编写sql文件

4、运行sqlc生成对应的查询文件

docker run --rm -v "%cd%:/src" -w /src kjconroy/sqlc generate

示例:

docker run --rm -v "d:\ProgramPro\workspace\go\test:/src" -w /src kjconroy/sqlc generate

如果运行成功则代表书写的sql语句正确