| 方法 | 说明 | | ---- | ---- | | count | 返回计数 | | del | 删除一条数据 | | find | 查寻数据 | | get | 查寻一条数据 | | set | 新增一条数据 | | setmany | 批量新增数据 | | update | 更新一条数据 |
依赖:
toml
mysql = "23.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0", default-features = false, features = ["alloc"] }
regex = "1.7"
run、rundrop
```rust
use mysqlquick::{MysqlQuick, run, find ...};
pub fn mysqlconn() -> PooledConn {
let conn = MysqlQuick::new(1, 10, "mysql://root:12345678@localhost:3306/devdb").unwrap().pool.getconn().unwrap();
conn
}
let mut conn = mysqlconn();
// 新增一条数据 let id = run_drop(&mut conn, set!("feedback", { "content": "ADFaadf", "uid": 9, })).unwrap();
// 删除一条数据 run_drop(&mut conn, del!("feedback", 50)).unwrap();
// 更新一条数据 run_drop(&mut conn, update!("feedback", 56, { "content": "更新后的内容,一一一一" })).unwrap();
// 批量 新增数据 let msql = setmany!("feedback", [ {"uid": 1, "content": "批量更新00adf"}, {"uid": 2, "content": "2342341"}, {"uid": 3, "content": "mmmmm"}, {"uid": 4, "content": "zzzzzz"}, {"uid": 5, "content": "奔苦asda工工"}, {"uid": 6, "content": "555"} ]); run_drop(&mut conn, msql).unwrap();
// 获取一条数据 let sql1 = get!("feedback", 33, "id as id, feedback.content as cc");
struct Feedback {
id: u64,
cc: String
}
let res_get: (Vec
// 查寻数据
let sqlf = find!("feedback", {
p0: ["uid", ">", 330],
r: "p0",
select: "id, content as cc",
});
let resfind: (Vec
// 获取计数
let res_count: (Vec
```
runtran、runtrandrop
```rust
use mysqlquick::{TxOpts, MYEXCLUSIVELOCK, MYSHAREDLOCK};
let mut conn = mysqlconn();
// ---- 事务开始 ----
let mut tran = conn.starttransaction(TxOpts::default()).unwrap();
let getsql = get!("feedback", 59, "id,num,content,createdat") + MYEXCLUSIVELOCK; // 加锁操作,
let getdata: (Vec
let tmp = getdata.0; if tmp.len() == 0 { // 回滚事务 tran.rollback().unwrap(); } else { if tmp[0].num <= 0 { // 回滚事务 tran.rollback().unwrap(); } else { let sql2 = update!("feedback", 59, {"num": ["incr", -1]}); runtran_drop(&mut tran, sql2).unwrap(); // 提交事务 tran.commit().unwrap(); } } // ---- 事务结束 ----
```