1 个不稳定版本
0.1.0 | 2023 年 10 月 18 日 |
---|
#1801 在 数据库接口
7KB
65 行
SqlRender
一个简单的 SQL 生成器。
- 由您的 Rust
struct
自动定义模式 - 包括
INSERT
/SELECT
/UPDATE
/DELETE
/Soft DELETE
/DDL
SQL 语句
用法
use sqlrender::SqlRender;
#[derive(SqlRender, Default)]
struct Person {
id: Option<u64>,
name: Option<String>,
age: Option<u32>,
awesomeness: Option<f64>,
#[sqlrender(skip)]
skipped: Option<bool>,
deleted_at: Option<String>,
}
fn main() {
let mut person = Person {
id: None,
name: Some("Bob".to_string()),
age: Some(24),
awesomeness: Some(0.5),
skipped: Some(true),
..Person::default()
};
{
let sql = person.select_sql().unwrap();
println!("select sql: {}", sql);
let sql = person.scoped_select_sql().unwrap();
println!("scoped select sql: {}", sql);
}
{
let sql = person.insert_sql().unwrap();
println!("insert sql: {}", sql);
}
{
person.id = Some(1);
let sql = person.update_sql().unwrap();
println!("update sql: {}", sql);
}
{
let sql = person.delete_sql().unwrap();
println!("delete sql: {}", sql);
let sql = person.soft_delete_sql().unwrap();
println!("soft delete sql: {}", sql);
}
{
let str = person.table_name();
println!("table name: {}", str);
}
}
注意
根据 turbosql
修改了代码
依赖关系
~3.5–6MB
~103K SLoC