6个版本

0.1.5 2023年2月27日
0.1.4 2023年2月27日

#936 in 进程宏

MIT 许可协议

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