泛型Dao-减少重复的Dao代码,用Hibernate实现
Data Access Object (DAO) 是一般的J2EE项目中的一个常见的模块,在我们用一般的方法去实现DAO的过程中会发现在为每个pojo实现DAO的的时候会不断地区重复的写一些常用的方法,如update(),delete(),find()等。
为了解决以上所述的缺点,可以采用DAO用泛型实现的方法,把通用的方法抽出来放到基类中,以后为pojo实现DAO的时候只要继承DAO基类就可以复用这些通用方法。这样的做法即保证了代码的复用,又保证了类型的安全。
下面例子为以前一个项目中的代码片段:
代码说明:
IBaseDao 是DAO基类的接口
BaseHibernateDao 是DAO的Hibernate实现基类(实现了接口IBaseDao)
IUserDao 是具体的DAO接口,用于持久化用户数据(继承了接口IBaseDao)
UserHibernateDao 是具体的DAO的Hibernate实现,持久化用户数据(继承了BaseHibernate 并实现了接口 IUserDao)
UserHibernateDao 继承了BaseHibernateDao的所有功能,在新建一个DAO时
只要用 XxxxxHibernateDao extends BaseHibernate就可以继承BaseHibernate的所有功能。
1.DAO基类接口
3.具体的DAO接口(继承IBaseDao):
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
不可理喻啊。 2 楼 hongshenghome 2010-10-14 直接写成一个类就行了,没必要写成接口,写成了反而增加spring配置代码