6个版本
0.1.5 | 2023年2月27日 |
---|---|
0.1.4 | 2023年2月27日 |
#936 in 进程宏
13KB
82 代码行
sqlxx
sqlxx 是一个Rust库,通过自定义宏扩展了sqlx库,提供方便的函数以进行常见的数据库操作。使用sqlxx,你可以通过Rust结构体轻松地在数据库中保存、查找和删除记录。
安装
要在Rust项目中使用sqlxx,只需将其添加到您的Cargo.toml文件中
[dependencies]
sqlxx = "0.1.0"
用法
要使用sqlxx提供的save、find_by_id和delete_by_id函数,您需要定义一个Rust结构体来表示数据库中的记录,并使用Model
属性派生它
use sqlxx::Model;
#[derive(Model)]
struct User {
id: i32,
name: String,
email: String,
}
定义了您的结构体后,您可以使用Model宏生成save、find_by_id和delete_by_id函数
use sqlxx::Model;
#[derive(Model)]
struct User {
id: i32,
name: String,
email: String,
}
fn main() -> Result<(), sqlx::Error> {
let mut user = User {
id: 0,
name: "Alice".to_string(),
email: "[email protected]".to_string(),
};
user.save(db).await;
let loaded_user = User::find_by_id(db, user.id).await;
loaded_user.delete(db).await;
Ok(())
}
save
函数将在id字段为None时将新记录插入数据库,或在id字段有值时更新现有记录。find_by_id函数将根据给定的ID从数据库中加载记录,而delete_by_id函数将根据给定的ID从数据库中删除记录。
限制
目前,sqlxx仅支持PostgreSQL。未来可能增加对其他数据库的支持。
贡献
欢迎为sqlxx做出贡献!如果您发现错误或想建议新功能,请在该GitHub仓库上打开一个问题。我们也欢迎Pull requests。
许可协议
sqlxx受MIT许可协议许可。
依赖
~12–24MB
~353K SLoC