首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

重写Spring的HibernateDaoSupport 简单化Dao层写法

2012-10-08 
重写Spring的HibernateDaoSupport 简化Dao层写法Dao写的多了,两个问题。1,spring的配置文件中对每个Dao都配

重写Spring的HibernateDaoSupport 简化Dao层写法

Dao写的多了,两个问题。1,spring的配置文件中对每个Dao都配置注入SessionFactory。2,Dao中好多代码雷同性太高。对于第一个问题,使用spring的自动扫描机制加annotation解决,第二个问题,则重新书写HibernateDaoSupport解决。在重写的support类中使用annotation完成SessionFactory的注入,并抽象Dao中常用的代码。

?

附件中用源码 及打好的jar包。直接将jar包导入即可使用。

?

使用范例:

spring配置文件:

?

?

Dao

?

@Repositorypublic class RoleDaoHibernate extends EntityHibernateDaoSupport<Role> implements RoleDao {@Overridepublic List<Role> find() {final String HQL="from Role order by sort";return super.find(HQL);}@Overridepublic Role get(String roleName) {final String HQL= "from Role where roleName=?";return super.get(HQL, roleName);}@Overridepublic Integer findMaxSort() {final String HQL= "select max(sort) from Role";return super.findAgg(HQL);}@Overridepublic Role getBySort(Integer sort) {final String HQL= "from Role where sort=?";return super.get(HQL, sort);}@Overridepublic Integer updateBatch(Integer sort) {final String HQL="update Role set sort=sort-1 where sort>?";return super.execute(HQL,sort);}@Overridepublic Integer findCount() {final String HQL="select count(id) from Role";return super.getAgg(HQL);}@Overridepublic List<Role> find(Integer firstResult, Integer maxResults) {final String HQL="from Role";return super.find(HQL, maxResults, firstResult);}}

热点排行