准备好了单元测试模块,就写个底层的数据访问的控制Handle类来试试吧。也就是通常我们所说的DAO类。一般而言,每个模型/实体类需要建立一个DAO类。 不过经验告诉我们,一些通用的CRUD方法几乎在每个DAO类中都是一样的,那么也就是说我们通常所写的DAO会有些代码冗余的问题,而且根据业务需要,日后的维护工作有可能添加一些新的实体类,写地越多,DAO类就越多,写的代码就越多余还浪费时间。如何将写好的一个DAO类进行代码重用成为了问题。其实笔者见过一个的系统里有做过将Hibernate框架人应用做成静态类,用到时直接HibernateUtil.save()的。今天,咱也做一个通用的DAO放一些通用的CRUD方法进去,用来做通用的CRUD操作。这样做既省去了不少代码量,加强了代码可读性,而且还方便快捷地架构起这个WebModel,可以重用到很多的系统中。当然,遇到特殊的Entity 需要建个别的DAO时再当别论。

       

      首先是接口的编写,我在接口的编写时加了很多的JavaDoc,就不贴出代码了,上传为附件方便读者下载吧。此处列出几个方法做简单说明

 

Java代码 复制代码  收藏代码
  1. package com.xxxxx.webmodel.pin;   
  2.   
  3. import java.util.List;   
  4. import java.util.Map;   
  5.       public interface IPersistencePin {   
  6.     public void createPersistingEntity(Object persistingObj) throws Exception;   
  7.     public <PerE> PerE retrievePersistedEntity(Class<PerE> persistedClass,   
  8.             long id) throws Exception;   
  9.     public <PerE> PerE retrievePersistedEntity(Class<PerE> persistedClass,   
  10.             String identifier) throws Exception;   
  11.     public <PerE> List<PerE> retrievePersistedEntityAllInList(   
  12.             Class<PerE> persistedClass) throws Exception;   
  13.     public void updatePersistedEntity(Object persistingObj) throws Exception;   
  14.     public void deletePersistedEntity(Object persistingObj) throws Exception;   
  15. }  
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;
}