mysql 数据库连接方法封装

| 方法 | 说明 | | ---- | ---- | | mycount | 返回计数 | | mydel | 删除一条数据 | | myfind | 查寻数据 | | myget | 查寻一条数据 | | myset | 新增一条数据 | | mysetmany | 批量新增数据 | | myupdate | 更新一条数据 |

依赖: toml mysql = "23.0" serde = { version = "1.0", features = ["derive"] } serde_json = { version = "1.0", default-features = false, features = ["alloc"] } regex = "1.7"

mysql 查寻示例

run、rundrop
```rust use mysql
quick::{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 = rundrop(&mut conn, myset!("fortest", { "content": "ADFaadf", "uid": 9, })).unwrap();

// 删除一条数据 rundrop(&mut conn, mydel!("fortest", 50)).unwrap();

// 更新一条数据 rundrop(&mut conn, myupdate!("fortest", 56, { "content": "更新后的内容,一一一一" })).unwrap();

// 批量 新增数据 let msql = mysetmany!("fortest", [ {"uid": 1, "content": "批量更新00adf"}, {"uid": 2, "content": "2342341"}, {"uid": 3, "content": "mmmmm"}, {"uid": 4, "content": "zzzzzz"}, {"uid": 5, "content": "奔苦asda工工"}, {"uid": 6, "content": "555"} ]); rundrop(&mut conn, msql).unwrap();

// 获取一条数据 let sql1 = myget!("for_test", 33, "id as id, feedback.content as cc");

[derive(Serialize, Deserialize, Debug)]

struct Feedback { id: u64, cc: String } let res_get: (Vec, Option<(u64, String)>) = run(&mut conn, sql1).unwrap();

// 查寻数据 let sqlf = myfind!("fortest", { p0: ["uid", ">", 330], r: "p0", select: "id, content as cc", }); let resfind: (Vec, Option<(u64, String)>) = run(&mut conn, sqlf).unwrap();

// 获取计数 let rescount: (Vec, Option) = run(&mut conn, mycount!("fortest", {})).unwrap();

```

mysql 事务示例

runtran、runtrandrop
```rust use mysql
quick::{TxOpts, MYEXCLUSIVELOCK, MYSHAREDLOCK};

let mut conn = mysqlconn(); // ---- 事务开始 ---- let mut tran = conn.starttransaction(TxOpts::default()).unwrap(); let getsql = myget!("fortest", 5, "id,title,content,price,total,uid") + MYEXCLUSIVELOCK; let getdata: (Vec, Option<(u32,String,String,f32,i32,u16)>) = myruntran(&mut tran, getsql).unwrap(); let tmp = getdata.0; if tmp.len() == 0 { tran.rollback().unwrap(); } else { if tmp[0].total <= 0 { tran.rollback().unwrap(); } else { let sql2 = myupdate!("fortest", 5, {"total": ["incr", -1]}); myruntran_drop(&mut tran, sql2).unwrap(); tran.commit().unwrap(); } } // ---- 事务结束 ----

```