准备好了单元测试模块,就写个底层的数据访问的控制Handle类来试试吧。也就是通常我们所说的DAO类。一般而言,每个模型/实体类需要建立一个DAO类。 不过经验告诉我们,一些通用的CRUD方法几乎在每个DAO类中都是一样的,那么也就是说我们通常所写的DAO会有些代码冗余的问题,而且根据业务需要,日后的维护工作有可能添加一些新的实体类,写地越多,DAO类就越多,写的代码就越多余还浪费时间。如何将写好的一个DAO类进行代码重用成为了问题。其实笔者见过一个的系统里有做过将Hibernate框架人应用做成静态类,用到时直接HibernateUtil.save()的。今天,咱也做一个通用的DAO放一些通用的CRUD方法进去,用来做通用的CRUD操作。这样做既省去了不少代码量,加强了代码可读性,而且还方便快捷地架构起这个WebModel,可以重用到很多的系统中。当然,遇到特殊的Entity 需要建个别的DAO时再当别论。
首先是接口的编写,我在接口的编写时加了很多的JavaDoc,就不贴出代码了,上传为附件方便读者下载吧。此处列出几个方法做简单说明
- package com.xxxxx.webmodel.pin;
- import java.util.List;
- import java.util.Map;
- public interface IPersistencePin {
- public void createPersistingEntity(Object persistingObj) throws Exception;
- public <PerE> PerE retrievePersistedEntity(Class<PerE> persistedClass,
- long id) throws Exception;
- public <PerE> PerE retrievePersistedEntity(Class<PerE> persistedClass,
- String identifier) throws Exception;
- public <PerE> List<PerE> retrievePersistedEntityAllInList(
- Class<PerE> persistedClass) throws Exception;
- public void updatePersistedEntity(Object persistingObj) throws Exception;
- public void deletePersistedEntity(Object persistingObj) throws Exception;
- }
package com.xxxxx.webmodel.pin;
import java.util.List;
import java.util.Map;
public interface IPersistencePin {
public void createPersistingEntity(Object persistingObj) throws Exception;
public <PerE> PerE retrievePersistedEntity(Class<PerE> persistedClass,
long id) throws Exception;
public <PerE> PerE retrievePersistedEntity(Class<PerE> persistedClass,
String identifier) throws Exception;
public <PerE> List<PerE> retrievePersistedEntityAllInList(
Class<PerE> persistedClass) throws Exception;
public void updatePersistedEntity(Object persistingObj) throws Exception;
public void deletePersistedEntity(Object persistingObj) throws Exception;
}
转载于:https://blog.51cto.com/ajiao13/1134659