#sql-database #proc-macro #sqlite #mysql #traits #table #items

derive-sql

通过特性和过程宏组织与 SQL 数据库的交互 - 目前支持 SQLite 和 MySQL

16 个版本 (10 个破坏性更新)

0.11.3 2024 年 7 月 22 日
0.10.0 2024 年 6 月 9 日
0.8.1 2024 年 3 月 18 日
0.6.0 2023 年 11 月 11 日
0.2.1 2022 年 11 月 19 日

#4 in #items

Download history 7/week @ 2024-04-22 125/week @ 2024-06-03 52/week @ 2024-06-10 8/week @ 2024-06-17 19/week @ 2024-07-01 285/week @ 2024-07-15 134/week @ 2024-07-22 116/week @ 2024-07-29

每月 535 次下载
用于 3 crates

MIT 许可证

130KB
2.5K SLoC

derive-sql

本项目定义了一种在 Rust 中与 SQL 数据库交互的方法 [目前仅支持 SQLite]。

该包中定义了一个名为 Sqlable 的特质,包含以下用于与数据库交互的函数:

  • count 用于提供表中项目数量的计数。
  • select 用于返回表中的项目数组。
  • insert 用于在表中插入新的项目。
  • update 用于使用提供的项目值更新现有项目。
  • delete 用于删除表中的项目。
  • delete_table 用于删除表。

可选功能 sqlite 下提供了一个名为 DeriveSqlite 的过程宏。该过程宏可以将 Sqlable 特质应用于具有命名字段的 struct,以实现该特质。

如何使用

目前,该过程宏与 rusqlite 绑定,需要添加到您的 Cargo.toml 中。如果没有添加,则项目将无法编译。

要使用此项目的过程宏,请将以下内容添加到您的 Cargo.toml 中:

[dependencies]
derive-sql = { version = "0.5", features = [ 'sqlite' ] }

并按照以下方式注释您的 struct:

use derive_sql::{Sqlable, DeriveSqlite};

#[derive(DeriveSqlite)]
struct Person {
  id: 32,
  name: String,
}

并使用生成的函数:

  • 查看文档页面;
  • 使用 cargo doc --open 生成生成的函数的文档

检查 extras/derive-sql-sqlite/examples 文件夹中使用的内存中 SQLite 数据库的示例测试

cargo run --example simple --features sqlite
cargo run --example attributes --features sqlite

extras/derive-sql-mysql/examples 文件夹中检查使用 MySQL 数据库的示例测试

cargo run --example simple_mysql --features mysql
cargo run --example attributes_mysql --features mysql

许可证

该项目受 MIT 许可证 许可。

依赖项

~2–18MB
~246K SLoC