7 个版本
0.2.1 | 2023 年 3 月 7 日 |
---|---|
0.2.0 | 2023 年 2 月 10 日 |
0.1.5 | 2023 年 2 月 7 日 |
0.1.3 | 2022 年 2 月 22 日 |
在 数据库接口 中排名 1470
20KB
308 代码行
include-sqlite-sql 是 include-sql 的扩展,用于在 Rust 中使用 SQLite SQL。它通过提供 impl_sql
宏来生成数据库访问方法,从而完善了 include-sql。include-sqlite-sql 使用 Rusqlite 进行数据库访问。
示例
编写您的 SQL 并将其保存到文件中。例如,以下内容保存为项目 src
文件夹中的 library.sql
-- name: get_loaned_books ?
--
-- Returns the list of books loaned to a patron
--
-- # Parameters
--
-- param: user_id: &str - user ID
--
SELECT book_title
FROM library
WHERE loaned_to = :user_id
ORDER BY 1
-- name: loan_books!
--
-- Updates the book records to reflect loan to a patron
--
-- # Parameters
--
-- param: book_titles: &str - book titles
-- param: user_id: &str - user ID
--
UPDATE library
SET loaned_to = :user_id
, loaned_on = current_timestamp
WHERE book_title IN (:book_titles)
然后在 Rust 中使用它
use include_sqlite_sql::{include_sql, impl_sql};
use rusqlite::{Result, Connection};
include_sql!("src/library.sql");
fn main() -> Result<()> {
let db = Connection::open("library.db")?;
db.loan_books(&["War and Peace", "Gone With the Wind"], "Sheldon Cooper")?;
db.get_loaned_books("Sheldon Cooper", |row| {
let book_title : &str = row.get_ref(0)?.as_str()?;
println!("{book_title}");
Ok(())
})?;
Ok(())
}
文档
包含的 文档 描述了支持的 SQL 文件格式,并提供了有关生成代码的更多详细信息。
💥 0.2 版本中的重大变更
- include-sql 将可选语句终止符从
;
更改为/
。使用;
终止符的 SQL 文件需要将其更改为/
或完全删除。
✨ 0.2 版本中的新功能
- include-sqlite-sql 现在支持语句 批处理。该语句的变体选择器是
&
。有关其使用的示例,请参阅 library.sql。
依赖关系
~3.5–4.5MB
~89K SLoC