用于使用SQL的Golang庫:dotsql

jopen 11年前發布 | 21K 次閱讀 dotsql Google Go/Golang開發

它不是一個ORM,也不是一個查詢構建器。Dotsql是一個庫,可以幫助你將所有SQL放在同一個文件中,方便使用。

Dotsql 受 yesql 啟發。

用法

首先,您需要定義查詢至一個文件中:

-- 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-one-user-by-email
SELECT id,name,email FROM users WHERE email = ? LIMIT 1
--name: drop-users-table
DROP TABLE users
請注意,每個查詢都有一個名字標簽(--name:<部分名稱>),這將有利于指一個特定的查詢

然后,你應該能夠運行,如:
// Get a database handle
db, err := sql.Open("sqlite3", ":memory:")

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

// Run queries
res, err := dot.Exec(db, "create-users-table")
res, err := dot.Exec(db, "create-user", "User Name", "main@example.com")
rows, err := dot.Query(db, "find-one-user-by-email", "main@example.com")

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

對于一個完整的示例,請參閱 integration_test.go and test_schema.sql



項目主頁:http://www.baiduhome.net/lib/view/home/1416650143242

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!