使用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语句正确