sqlex
sqlex copied to clipboard
让数据库访问也能"类型安全"
SqlEx 是什么
SqlEx (SQL extension) 是一个简单的 DB helper.
从实际应用角度出发, 解决编程语言(Java)和关系型数据库之间对于类型和结构认知不匹配的问题.
主要思路是通过对数据库结构和 SQL 做语义分析, 依据分析得出的结果, 生成对应的结果类型. 提供强类型安全的编程体验.
将大部分错误从运行时前推到编译时/从编译时前推到编辑时, 保证错误写法有提示, 错误写法无法编译通过, 能编译通过进运行环境的程序不会出现数据库结构/类型错误.
特性一览
- 自带数据库版本管理(类似 flyway)
- 提供
sqlm语言编写 SQL, 能自动生成结果类 - 根据数据库结构自动生成 Fluent API
- 提供 IDEA 插件, 提升开发体验
- 与 SpringBoot 良好集成
SqlEx Method 语言
sqlm是另一种"写 Java"的方式, 专用于编写复杂的数据库访问方法. 能自动分析 SQL 并生成对应的结果类型.
动画演示(加载有点慢/直接打开):

Fluent API
SqlEx 会根据数据库信息, 准备好对应的表操作对象(无须自己手动定义实体), 提供 Fluent API 来对数据库做简单操作.
动画演示(加载有点慢/直接打开):

更多
详细文档请访问 SqlEx 文档
关于
本项目中 MySQL 相关的语法/逻辑计划分析来源于 TiDB 项目
另外部分代码的实现上参考了如下项目:
再次特别感谢上述项目的开发者对开源事业做出的贡献.