百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
D

dotsql

> 编程语言
开源

一个用于使用 SQL 的 Golang 库。

743 stars0 点赞1 次浏览
访问官网GitHub

工具介绍

一个用于使用 SQL 的 Golang 库。

dotsql

一个用于使用 SQL 的 Golang 库。 它不是一个 ORM,也不是一个查询构建器。Dotsql 是一个库,可以帮助您 将 SQL 文件保存在一个位置,并轻松地使用它们。 _Dotsql 受到 yesql 的深刻启发。 安装

bash
$ go get github.com/qustavo/dotsql

用法

首先,您需要在 sql 文件中定义查询:

sql
-- name: create-users-table
CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
    name VARCHAR(255),
    email VARCHAR(255)
);

-- name: create-user
INSERT INTO users (name, email) VALUES(?, ?)

-- name: find-users-by-email
SELECT id,name,email FROM users WHERE email = ?

-- name: find-one-user-by-email
SELECT id,name,email FROM users WHERE email = ? LIMIT 1

--name: drop-users-table
DROP TABLE users

请注意,每个查询都有一个名称标签(--name:), 这需要能够唯一识别每个查询 dotsql 文件中。 在准备好 sql 文件后,您可以加载它并开始使用查询:

go
// Get a database handle
db, err := sql.Open("sqlite3", ":memory:")

// Loads queries from file
dot, err := dotsql.LoadFromFile("queries.sql")

// Run queries
res, err := dot.Exec(db, "create-users-table")
res, err := dot.Exec(db, "create-user", "User Name", "[email protected]")
rows, err := dot.Query(db, "find-users-by-email", "[email protected]")
row, err := dot.QueryRow(db, "find-one-user-by-email", "[email protected]")

stmt, err := dot.Prepare(db, "drop-users-table")
result, err := stmt.Exec()

您还可以合并来自不同 SQL 文件输入的多个 dotsql 实例:

go
dot1, err := dotsql.LoadFromFile("queries1.sql")
dot2, err := dotsql.LoadFromFile("queries2.sql")
dot := dotsql.Merge(dot1, dot2)

文本插值

text/template 样式的文本插值受支持。

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Gogogolang-librarysql

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言