参考
ORM框架设计原理与定制
Mybatis_自定义持久层框架
MyBatis(二):自定义持久层框架思路
ORM框架要解决的问题
- 连接数据库需要手动创建,需要使用通过实例后调用api才能执行sql,配置化改变的是硬编码导致的反复修改的问题,但是不能达到急查急用的效果。手动创建的数据库连接还必须维护数据库连接和设计高效的使用方式(资源释放,快速访问)。
- sql写在java文件中,可维护性差,不便问题定位查找,可移植性差,拼接sql容易导致sql注入。
- jdbc的api使用难度,对sql的匹配,结果的匹配(复杂的api,哪些可以执行ddl,哪些执行dml,是否返回结果,结果的形式等)
- 查询结果的解析繁琐
ORM框架使用目标
用户想要的框架
- 可以配置数据库的连接信息,不需要维护数据库的重复创建及最优使用
- 操作数据库数据即调即得,一个方法即可完成表的操作,及指定形式结果的返回
- sql便于维护,复用性增强,甚至不需要写sql
ORM框架要做哪些事
- 具体技术实现待补充
-
实现配置化
-
自动加载配置,框架实现内部调用DataSource,优化的连接池,方便切换
-
sql的两种设计
– 配置化sql,指定一些参数供框架调用
– 通用化CRUD,框架提供常用的insert,select,update,delete进行调用,然后实现sql的自动化生成,提供方法能够完成复杂sql的设计 -
返回结果映射成pojo
-
其他功能增强,比如参数配置,sql注入,日志提示,查询优化等增进