LegendDao实现了JPA的基本接口 , 是spring jdbcTemplate增强工具包, 只做增强不做改变,简化CRUD操作 。
持久层框架LegendDao是一个基于Java和Spring 的jdbcTemplate的持久层框架。支持类似Hibernate方式的单表映射功能和采用SQL方式来处理多表关联的查询和插入删除更新等功能,消除了大部分的JDBC代码和参数的手工设置以及结果集的检索。由于使用了jdbctemplate, 事务天然是采用是采用Spring自带的事务。
每个数据库连接都对应一个entityFactory,包括对jdbcTemplate的引用和数据库方言dialect的引用,方言支持MySQL,Oracle等数据库。LegendDao最强大的特性之一就是它的动态语句功能,在后台列表中往往需要根据不同的条件来筛选数据,普通的SQL需要大量的if else去组装SQL,legendDao提供一个Map来动态组装出不同的数据,而且支持运行时动态改变SQL。同时LegendDao支持采用反射和字节码增强的方式来由ResultSet来组装最后要的实体类。
LegendDao封装了基本的JPA接口,但是基本接口不满足需求的情况下,也可以直接使用spring的jdbcTemplate来操作。
接口 | 说明 |
---|---|
Dao | 通用Dao接口. |
CrudDao | 增删查改基本Dao接口. |
GenericDao | 封装了通用的分页接口 |
GenericJdbcDao | 采用jdbcTempate封装Jdbc的操作 |
我们把LegendDao的功能架构分为三层,如下图:
提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。支持类似Hibernate的增删改查的和采用JDBC方式的多表查询。
负责具体的SQL查找、SQL组装、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
基础层使用Spring的jdbcTemplate来实现。
欢迎提出更好的意见,帮助完善 LegendDao