Expand description
§SZ-ORM QueryBuilder — 独立 SQL 构造器(sea-query 风格)
一个不绑定 Model 的纯 SQL 构造器,可独立编译、独立发布到 crates.io。
设计灵感来自 sea-query:
- 与 ORM 解耦:不依赖
Modeltrait,纯 SQL 构造 - 多方言支持:通过
DbType适配 MySQL/PostgreSQL/SQLite/Oracle - 链式 API:所有方法返回
Self - 零运行时开销:构造过程零数据库连接
§快速入门
use sz_orm_core::DbType;
use sz_orm_query_builder::{Query, SelectQuery};
// SELECT
let sql = Query::select()
.column("id")
.column("name")
.from("users")
.where_clause("age > 18")
.order_by("id", true)
.limit(10)
.build(DbType::MySQL);
assert!(sql.contains("SELECT"));
assert!(sql.contains("FROM `users`"));
// INSERT
let sql = Query::insert()
.into_table("users")
.value("name", "'Alice'")
.value("age", "30")
.build();
assert!(sql.contains("INSERT INTO `users`"));
// UPDATE
let sql = Query::update()
.table("users")
.set("name", "'Bob'")
.where_clause("id = 1")
.build();
assert!(sql.contains("UPDATE `users`"));
// DELETE
let sql = Query::delete()
.from_table("users")
.where_clause("id = 1")
.build();
assert!(sql.contains("DELETE FROM"));§与 sz-orm-core::QueryBuilder 的区别
| 特性 | sz-orm-core::QueryBuilder<M> | sz-orm-query-builder::Query |
|---|---|---|
| 绑定 Model | 是(<M: Model>) | 否 |
| 类型安全 | 编译期表/列校验 | 运行时字符串 |
| 适用场景 | ORM 完整流程 | 纯 SQL 构造、动态查询 |
| 依赖 | sz-orm-core 全部 | 仅 dialect 模块 |
| 独立发布 | 否 | 是 |
Structs§
- Delete
Query - DELETE 查询构造器
- Insert
Query - INSERT 查询构造器
- Query
- 查询构造器入口
- Select
Query - SELECT 查询构造器
- Update
Query - UPDATE 查询构造器