在使用了 Mybatis 和 Spring JdbcTemplate 之后,还是决定自己写一个 ORM 框架。
Mybatis 的问题就是版本太多,配置太灵活,看不同人写的项目,就好像是不同的框架似的,而且还需要结合代码生成工具来使用,每次一修改表结构就要重新生成一遍 mapper 文件,自己写的 sql 必须要先备份,我知道应该有解决办法,但是不想继续在这条技术栈上投入精力了。
Spring JdbcTemplate 非常好用,但是就一个缺点,就是自己写的代码还是偏多,我曾经试着封装一个统一的 Repository ,来实现基础的 CRUD 操作以及常见字段类型的自动转换工作,但是忽然发现,我能基于JdbcTemplate做封装,何不直接在 JDBC 上封装呢?这样还能摆脱对 Spring 的依赖(尽管绝大多数Java应用都使用Spring)。于是就有了自己制作一个 ORM 框架的想法。
我的目标很简单,制作一个开箱即用的 ORM 框架,能够让开发者更好地发挥原生 SQL 的能力,同时为开发者自动完成诸如 SQL 拼接、字段映射、类型转换等枯燥的过程。
目前已经实现了大部分功能,如果你也感兴趣的话,请在 Github 上搜索 “rocket/jorm” 并给我个 Star 吧。
如果有感兴趣的,也欢迎一起讨论。