1 个不稳定版本

0.1.0 2023 年 10 月 18 日

#1801数据库接口

MIT 许可证

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