sqlx-model-0.0.1-beta.11 has been yanked.
引入
使用 default-features = false 禁用默认使用的tokio,自行选择运行时跟数据库类型
[]
= { = "0.0.1-beta.2", = "../../", = false, = ["sqlx-mysql"] }
= { = "~0.5", = [ "mysql","offline","runtime-async-std-native-tls"] }
={ = "1.10.0", = [ "attributes" ]}
使用示例
- 自动转义SQL生成
let data=;
let password_id=Some;
let sql=sql_format!;
println!;//select * from yaf_users where id>1 and grade in ('dd','b\'bb') and password_id = 1
//会转义'防止sql注入
- 常用增删改查
使用前准备,结构体增加derive宏
使用 sqlx_model::SqlxModel 宏 自动增加辅助方法 同时会创建 UserModelRef 的结构,用于辅助增删改查操作
//#[sqlx(rename_all="lowercase")] //按规则自定义字段名
//自定义表主键,不指定默认第一个字段
//自定义关联表名,不指定为去除Model后的user
*. 新增:
更多使用方法参考 tests 目录
let nike_name="new insert".to_string;
let gender=1;
let userinsert= model_option_set!;
let i1= new.execute.await.unwrap;
assert!;
*. 删除:
更多使用方法参考 tests 目录
let select=;
let user=select..await.unwrap;
let detete= new
.execute_by_pk
.await.unwrap;
assert_eq!;
*. 修改:
更多使用方法参考 tests 目录
let nike_name="change to 1".to_string;
let userchange= model_option_set!;
let update= new;
let update=update.execute_by_scalar_pk.await.unwrap;
assert_eq!;
*. 查询:
更多使用方法参考 tests 目录
let select=;
let user=select..await.unwrap;
assert_eq!;