toml
rbs = { version = "4.6"}
rbatis = { version = "4.6"}
#drivers
rbdc-mysql = { version = "4.6" }
# 其他依赖
serde = { version = "1", features = ["derive"] }
serde_json = "1.0"
tokio = { version = "1", features = ["full"] }
log = "0.4"
fast_log = { version = "1.6", features = ["lz4", "zip", "gzip"] }
rs
use rbatis::rbdc::datetime::DateTime;
use rbs::value;
use rbatis::RBatis;
use rbdc_mysql::driver::MysqlDriver;
use serde::{Deserialize, Serialize};
use rbatis::crud;#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct BizActivity {pub id: Option<String>,pub name: Option<String>,pub status: Option<i32>,pub create_time: Option<DateTime>,pub additional_field: Option<String>,
}// 自动生成 CRUD 方法
crud!(BizActivity{},"BizActivity");#[tokio::main]
async fn main() {// 配置日志fast_log::init(fast_log::Config::new().console()).expect("rbatis初始化失败");// 初始化 rbatislet rb = RBatis::new();// 连接数据库rb.init(MysqlDriver{}, "mysql://admin:b7371d927aec647d@172.17.0.185:3306/test").unwrap();// 创建数据let activity = BizActivity {id: Some("1".into()),name: Some("测试活动".into()),status: Some(1),create_time: Some(DateTime::now()),additional_field: Some("额外信息".into()),};// 插入数据let data = BizActivity::insert(&rb, &activity).await;// 批量插入let data = BizActivity::insert_batch(&rb, &vec![BizActivity {id: Some("2".into()),name: Some("活动 2".into()),status: Some(1),create_time: Some(DateTime::now()),additional_field: Some("信息 2".into()),}, BizActivity {id: Some("3".into()),name: Some("活动 3".into()),status: Some(1),create_time: Some(DateTime::now()),additional_field: Some("信息 3".into()),},], 10).await;// 根据 map 条件更新let data = BizActivity::update_by_map(&rb, &activity, value!{ "id": "1" }).await;// 根据 map 条件查询let data = BizActivity::select_by_map(&rb, value!{"id":"2","name":"活动 2"}).await;// LIKE 查询let data = BizActivity::select_by_map(&rb, value!{"name like ":"%活动%"}).await;// 大于查询let data = BizActivity::select_by_map(&rb, value!{"id > ":"2"}).await;// IN 查询let data = BizActivity::select_by_map(&rb, value!{"id": &["1", "2", "3"]}).await;// 根据 map 条件删除let data = BizActivity::delete_by_map(&rb, value!{"id": &["1", "2", "3"]}).await;
}