Rust的ORM框架:rbatis

rabits 是一个Rust的ORM框架,目前的版本是4,3已经标记为废弃。所以后文所有介绍以及代码示例,均基于版本4。

依赖

现在的rbatis最新版本为4.5.49,所以如果是cargo管理的项目,可以直接在dependencies中添加4.5.49版本,或者更宽泛的版本限制,如4.5。

rbatis依赖rdbc,所以如果需要操作Mysql数据库,可以添加rdbc-mysql的依赖。

如下:

[dependencies]  
rbs = "4.5"
rbatis = "4.5"
rdbc-mysql = "4.5"

根据官方手册,rbatis目前支持任何rdbc驱动,如:

database(crates.io) github_link
Mysql rbatis/rbdc-mysql
Postgres rbatis/rbdc-pg
Sqlite rbatis/rbdc-sqlite
Mssql rbatis/rbdc-mssql
MariaDB rbatis/rbdc-mysql
TiDB rbatis/rbdc-mysql
CockroachDB rbatis/rbdc-pg
Oracle chenpengfan/rbdc-oracle
TDengine tdcare/rbdc-tdengine

rbatis还支持不同的功能选项,比如为了方便调试,可以打开调试选项degug_mode:

[dependencies]
rbatis = {version = "4.5", features = ["debug_mode"]}  

另外,如果使用crud等宏来定义SQL,Cargo.toml里就需要添加上rbs。

按照手册上所言,rbs是由rbatis的实现的一个序列化库,但是我去掉这个依赖以后,curd、impl_select等都报错了。

经过查看rbatis源码,发现crud、impl_select等宏的实现都使用了rbs做的序列化。如impl_insert的实现:

#[macro_export]
macro_rules! impl_insert {
    ($table:ty{}) => {
        $crate::impl_insert!($table {}, "");
    };
    ($table:ty{},$table_name:expr) => {
        impl $table {
            pub async fn insert_batch(
                executor: &dyn $crate::executor::Executor,
                tables: &[$table],
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值