2个版本
使用旧的Rust 2015
0.1.1 | 2022年4月21日 |
---|---|
0.1.0 | 2015年11月13日 |
#767 在 数据库接口
3,236 每月下载量
11KB
133 行
rawsql
Rust库,用于使用和重用SQL。
深受yesql (感谢 @krisajenkins) 影响
文档
您可以通过crates.io上的发布版将rawsql集成到您的项目中
# Cargo.toml
[dependencies]
rawsql = "0.1.1"
概览
您需要编写SQL并重用它。您不希望在代码中重复查询。这个库就是为您准备的。
此库不执行任何数据库中的SQL。
使用方法
基本思路是将SQL部分从代码中分离出来,并放入自己的SQL文件中。使用这种方法,您可以获得SQL的能力,并且只需编写一次即可在您的数据库上运行SQL(您的数据库管理员也可以修改这些文件)
SQL文件需要使用以下格式
-- name: insert-person
INSERT INTO "person" (name, data) VALUES ($1, $2);
-- name: select-persons
SELECT id, name, data FROM person;
注释使用**--名称:**,它将是获取每个查询的键值。
查询末尾需要分号。
extern crate rawsql;
use rawsql::Loader;
fn main() {
let queries = Loader::get_queries_from("examples/postgre.sql").unwrap().queries;
//Insert query
let qinsert = queries.get("insert-person").unwrap();
println!("{}", qinsert);
//Select query
let qselect = queries.get("select-persons").unwrap();
println!("{}", qselect);
}
完整示例请参阅此处
许可证
版权所有©2015 Manuel Alonso
MIT许可证
为什么这个库不执行SQL?
在Rust中还没有像JDBC或go的database/sql这样的通用驱动程序,所以我决定首先抽象SQL文件的解析器,以便直接与已存在的每个数据库的库一起使用。