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驱动,如:
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],