5个不稳定版本
0.4.0 | 2023年4月18日 |
---|---|
0.3.2 | 2022年9月7日 |
0.3.1 | 2022年3月29日 |
0.3.0 | 2022年3月26日 |
0.2.0 | 2022年3月16日 |
#2138 in 数据库接口
61 每月下载量
在 3 个Crates中使用了(直接使用2个)
29KB
153 行
sqlx-crud
sqlx-crud是SQLx的扩展,为表示sqlx数据库中表的struct派生创建、读取、更新和删除(CRUD)方法。
use sqlx::FromRow;
use sqlx_crud::SqlxCrud;
#[derive(Debug, FromRow, SqlxCrud)]
struct User {
user_id: i32,
name: String,
}
if let Some(user) = User::by_id(&pool, 42) {
println!("Found user user_id=42: {:?}", user);
}
主要特性
-
为struct提供单个派生宏
-
提供创建、读取、更新和删除记录的方法
-
自动推断主键和表名
-
可重复使用的表元数据
-
内部和外部数据库ID分配
这减少了处理典型的CRUD操作时所需的大量重复代码。
sqlx-crud力求在几个狭窄定义的任务上做得很好,以减少您在单表操作数据库应用时可能编写的80%的冗余代码。它提供了机制:Schema 和 Crud,以访问和重用生成的ID、列和查询元数据。这可以帮助编写更复杂的查询,但主要用例是CRUD。
安装
安装sqlx-crud类似于安装SQLx。
# Cargo.toml
[dependencies]
sqlx-crud = { version = "0", features = ["runtime-tokio-rustls"] }
请参阅文档以获取完整的使用说明。
特性
sqlx-crud使用与SQLx相同的runtime-*
标志,因为这些标志是依赖于SQLx的。
示例
您可以在示例目录中找到实际示例。
源代码
sqlx-crud的源代码可在https://www.github.com/treydempsey/sqlx-crud找到。
测试
doctests依赖于SQLx
及其runtime-tokio-rustls
和sqlite
特性。
可以使用以下方式运行测试:
$ cargo test
文档
文档托管在sqlx-crud文档。
路线图
sqlx-crud已经完成了大部分我需要的功能,然而在为其他人打包发布时,我意识到还有几个可以改进的地方。计划更新和主要成就列在里程碑中。
许可协议
sqlx-crud 采用了 MIT 许可协议(参见:LICENSE)。
依赖项
~8–22MB
~343K SLoC