Sqltoy以最佳的动态sql编写模式作为起点,并首创了缓存翻译、分页优化、快速分页、sql函数不同数据库自适配等高价值特性,同时对项目实践过程中各类复杂场景提供了极为细致的解决方案!
通过开源分享已经凝聚了更广泛用户的场景和智慧,欢迎您的加入共同打造一个中国式智慧的ORM框架!
SqlToy 的定位是弥补 JPA 的查询短板、解决 MyBatis 的高频痛点:既不是"所有 SQL 都要写 XML"的映射框架,也不是"复杂查询乏力"的纯对象框架,而是把两者的长处融合并针对性增强。
| 对比维度 | MyBatis / MyBatis-Plus | Hibernate / JPA | SqlToy |
|---|---|---|---|
| 定位 | SQL 映射框架,查询强、对象操作偏弱 | 对象操作强,复杂查询偏弱 | 两者融合:JPA 式对象 CRUD + 超强原生 SQL 查询 |
| 动态 SQL | <if>/<where> 标签把 SQL 割裂,无法直接在客户端执行 |
不提供原生 SQL 编写模式 | #[] 条件片段:SQL 保持原生结构,可直接复制到数据库客户端运行调试 |
| update 修改 | 手写 SQL 或先查后改 | 先 load 再改,两次数据库交互 | 弹性更新:一次交互完成,null 字段自动跳过 |
| 高并发台账类场景 | 需自行实现锁与多次交互 | 无对应能力 | updateFetch / updateSaveFetch:一次交互完成锁查询→校验→修改→返回 |
| 码值→名称显示 | 手写 JOIN 或多次查询 | 关联映射繁琐 | 缓存翻译:免 join,本地缓存零网络开销 |
| 分页 | 通常是简单包裹 select count(1) from (原sql) |
有分页 API,无 count 优化 | 智能 count 改写 + 缓存分页 + @fast 快速分页 + 并行分页 |
| 跨数据库 | SQL 绑定特定数据库方言 | 对象操作可跨库,查询能力弱 | 24 种方言 + 函数自动替换 + 方言 sqlId + 多库重放验证 |
| 数据分析 | 手写复杂透视/汇总 SQL | 不支持 | pivot/unpivot、分组汇总、同比环比、树形排序汇总 内置内存算法 |
| 查询结果封装 | ResultMap 手动映射 | 对象映射 | 自动映射 + 主子表层次封装(一条 join SQL 封装成父子对象) |
上表只列关键差异,完整能力见下方功能特性与功能清单;更多"为什么这样设计"的对比示例(sqltoy vs MyBatis 写法对比等)见必杀集锦。
sqltoy提供高效的ORM操作,包括对象化CRUD、级联加载、自动DDL生成等。在数据修改方面,提供弹性字段更新、强事务处理能力,支持分库分表、多种主键策略和数据加密。查询方面支持直观的SQL编写、缓存翻译优化、跨数据库自适配,提供业界最强的分页机制(自动count优化、缓存分页、快速分页、并行分页)。此外还支持数据分析(行列转换、同比环比、树形处理)、层次化数据结构、多租户隔离、数据脱敏等企业级特性。
| 类别 | 核心能力 | 文档 |
|---|---|---|
| 对象操作 | JPA 风格 CRUD、弹性更新、updateFetch / updateSaveFetch、级联、查询层次封装、树形表路由 | CRUD |
| SQL 查询 | 动态 SQL(#[] + filters)、缓存翻译、最强分页(count 优化 / 缓存 / 快速 / 并行)、并行查询、存储过程、流式查询 |
动态 SQL / 分页 |
| 数据分析 | 行转列 / 列转行、分组汇总、同比环比、树形排序汇总、分组拼接、日期数字格式化 | 数据分析 |
| 跨数据库 | 24 种方言(含 SAP HANA)、函数自动替换、多方言 sqlId、多库适配验证 | 方言 / 数据库清单 |
| 企业级 | 分库分表、多租户、数据权限与越权校验、脱敏加解密、数据版本控制、SQL 拦截、慢 SQL 处理 | 分库分表 / 安全 |
| NoSQL | Elasticsearch(sql / json 双模式)、MongoDB(查询 / 聚合 + 缓存翻译) | Mongo / ES |
| 工程化 | quickvo 代码生成、autoDDL 自动建表、debug 热加载、GraalVM AOT、Spring Boot / Spring / Solon / 纯 Java | 配置 / quickvo |
完整功能清单见 sqltoy 功能清单
Object list = lightDao.find("select * from sqltoy_order_info", new HashMap());- 常规的mysql、oracle、db2、postgresql、 sqlserver、dm、kingbase、hana、sqlite、h2、 oceanBase、polardb、gaussdb、tidb、oscar(神通)、瀚高、mogdb、vastbase、stardb
- 支持分布式olap数据库: clickhouse、doris、StarRocks、greenplum、impala(kudu)、TDengine
- 支持elasticsearch、mongodb
- 所有基于sql和jdbc 各类数据库查询