rust 坑很多,事务操作我也没找到相关的博客。
我是根据源码分析,然后才找到了具体的写法,真的很不容易!
引用依赖
[dependencies]
mysql ="17.0.0"
mysql_common ="0.20.0"
初始化mysql连接池
use mysql::Pool;
use crate::config;
pub fn init_mysql() -> Pool {
Pool::new(config::mysql_con()).unwrap()
}
进行事务操作!
use crate::db_source::init_mysql; //引入mysql
pub fn tran_test() -> String{
let mut transaction = init_mysql().start_transaction(false, None, None).unwrap();
transaction.prep_exec("insert into user values(?,?)",
(util::uuid(),"a").unwrap();
transaction.prep_exec("insert into user values(?,?)",
(util::uuid(),"b").unwrap();
transaction.prep_exec("insert into user values(?,?)",
(util::uuid(),"c").unwrap();
let res = transaction.commit();
match res {
Ok(__)=>"操作成功!".to_string(),
Err(__)=>{
transaction.rollback();//回滚
"操作失败!".to_string()
},
}
}
文章对你有帮助的话,点个免费的赞吧!