squirrel
项目核心内容总结:
功能
Squirrel 是一个用于 Go 语言的 SQL 查询生成器,通过可组合的语法构建 SQL 语句,不依赖 ORM。支持 SELECT、INSERT、UPDATE 等操作,可直接执行查询或生成 SQL 字符串。
使用方法
- 导入包:
import "github.com/Masterminds/squirrel" - 构建查询:通过链式方法(如
Select().From().Where())组合查询条件。 - 生成 SQL:调用
ToSql()获取 SQL 字符串及参数。 - 执行查询:通过
RunWith(db).Query()直接执行数据库操作。
主要特性
- 支持复杂查询构建,如 JOIN、WHERE 条件、IN 查询(通过
sq.Eq处理多值)。 - 可自定义占位符格式(如 PostgreSQL 的
$1,$2)。 - 提供
StmtCache缓存预处理语句,优化性能。 - 与 PostgreSQL 兼容,支持
RETURNING子句等语法。 - 支持动态条件拼接(如通过
if判断添加Where条件)。
注意事项
- 不处理
[]uint8类型的 IN 查询(需用[]byte代替)。 - 复合键 IN 查询需用
sq.Or模拟(col1, col2) IN ((...))效果。