2个版本

使用旧的Rust 2015

0.1.1 2022年4月21日
0.1.0 2015年11月13日

#767数据库接口

Download history 1754/week @ 2024-03-07 1553/week @ 2024-03-14 1371/week @ 2024-03-21 1009/week @ 2024-03-28 1552/week @ 2024-04-04 715/week @ 2024-04-11 597/week @ 2024-04-18 805/week @ 2024-04-25 1027/week @ 2024-05-02 638/week @ 2024-05-09 667/week @ 2024-05-16 716/week @ 2024-05-23 727/week @ 2024-05-30 724/week @ 2024-06-06 905/week @ 2024-06-13 743/week @ 2024-06-20

3,236 每月下载量

MIT 协议

11KB
133

rawsql

Rust库,用于使用重用SQL。

Build Status Latest Version

深受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文件的解析器,以便直接与已存在的每个数据库的库一起使用。

无运行时依赖项