Spring+iBatis写的公共DAO备忘

转自:http://chat.iteye.com/blog/182184

最近项目中使用Spring+iBatis,其中用到的公共dao记录在此
Java代码

   1. /**<br>
   2.  * 数据库Dao必须继承的接口,该接口定义了DaoTemplate的Set和Get方法<br>
   3.  * 其他dao继承IBaseDao后自动获得CRUD等功能 <br>
   4.  */<br> 
   5. public interface IBaseDao {<br> 
   6.     public void setDaoTemplate(IBatisDaoTemplate template);<br> 
   7.     public IBatisDaoTemplate getDaoTemplate();<br> 
   8.     /**<br>
   9.      * 更新数据<br>
  10.      * @param statementName<br>
  11.      * @param paramMap<br>
  12.      */<br> 
  13.     public int update(String statementName,Map paramMap);<br> 
  14.     /**<br>
  15.      * 添加数据<br>
  16.      * @param statementName<br>
  17.      * @param paramMap<br>
  18.      * @return<br>
  19.      */<br> 
  20.     public Object save(String statementName,Map paramMap);<br> 
  21.     /**<br>
  22.      * 根据条件查询一条数据<br>
  23.      * @param statementName<br>
  24.      * @param paramMap<br>
  25.      * @return<br>
  26.      */<br> 
  27.     public Object load(String statementName,Map paramMap);<br> 
  28.     /**<br>
  29.      * 根据条件查询数据<br>
  30.      * @param statementName<br>
  31.      * @param paramMap<br>
  32.      * @return<br>
  33.      */<br> 
  34.     public List searchAll(String statementName,Map paramMap);<br> 
  35.     /**<br>
  36.      * 根据条件分页查询数据<br>
  37.      * @param statementName<br>
  38.      * @param paramMap<br>
  39.      * @param pageNum<br>
  40.      * @param recoderNum<br>
  41.      * @return<br>
  42.      */<br> 
  43.     public List searchPage(String statementName,Map paramMap,int pageNum,int recoderNum);<br> 
  44.     /**<br>
  45.      * 删除符合条件的记录<br>
  46.      * @param statementName<br>
  47.      * @param paramMap<br>
  48.      * @return<br>
  49.      */<br> 
  50.     public int delete(String statementName,Map paramMap);<br> 
  51. } 

/**

* 数据库Dao必须继承的接口,该接口定义了DaoTemplate的Set和Get方法

* 其他dao继承IBaseDao后自动获得CRUD等功能

*/

public interface IBaseDao {

public void setDaoTemplate(IBatisDaoTemplate template);

public IBatisDaoTemplate getDaoTemplate();

/**

* 更新数据

* @param statementName

* @param paramMap

*/

public int update(String statementName,Map paramMap);

/**

* 添加数据

* @param statementName

* @param paramMap

* @return

*/

public Object save(String statementName,Map paramMap);

/**

* 根据条件查询一条数据

* @param statementName

* @param paramMap

* @return

*/

public Object load(String statementName,Map paramMap);

/**

* 根据条件查询数据

* @param statementName

* @param paramMap

* @return

*/

public List searchAll(String statementName,Map paramMap);

/**

* 根据条件分页查询数据

* @param statementName

* @param paramMap

* @param pageNum

* @param recoderNum

* @return

*/

public List searchPage(String statementName,Map paramMap,int pageNum,int recoderNum);

/**

* 删除符合条件的记录

* @param statementName

* @param paramMap

* @return

*/

public int delete(String statementName,Map paramMap);

}


Java代码

   1. /** <br>
   2.  * IBaseDao的实现 <br>
   3.  * <br>
   4.  */  <br> 
   5. public class BaseDaoImpl implements IBaseDao {<br> 
   6.     private IBatisDaoTemplate template;<br> 
   7.     public IBatisDaoTemplate getDaoTemplate() {<br> 
   8.         return this.template;<br> 
   9.     }<br> 
  10.     public void setDaoTemplate(IBatisDaoTemplate template) {<br> 
  11.         this.template=template;<br> 
  12.     }<br> 
  13.     /**<br>
  14.      * 更新数据<br>
  15.      * @param statementName<br>
  16.      * @param paramMap<br>
  17.      */<br> 
  18.     public int update(String statementName,Map paramMap){<br> 
  19.         return this.template.update(statementName, paramMap);<br> 
  20.     }<br> 
  21.     /**<br>
  22.      * 添加数据<br>
  23.      * @param statementName<br>
  24.      * @param paramMap<br>
  25.      * @return<br>
  26.      */<br> 
  27.     public Object save(String statementName,Map paramMap){<br> 
  28.         return this.template.save(statementName, paramMap);<br> 
  29.     }<br> 
  30.     /**<br>
  31.      * 根据条件查询一条数据<br>
  32.      * @param statementName<br>
  33.      * @param paramMap<br>
  34.      * @return<br>
  35.      */<br> 
  36.     public Object load(String statementName,Map paramMap){<br> 
  37.         return this.template.load(statementName, paramMap);<br> 
  38.     }<br> 
  39.     /**<br>
  40.      * 根据条件查询数据<br>
  41.      * @param statementName<br>
  42.      * @param paramMap<br>
  43.      * @return<br>
  44.      */<br> 
  45.     public List searchAll(String statementName,Map paramMap){<br> 
  46.         return this.template.searchAll(statementName, paramMap);<br> 
  47.     }<br> 
  48.     /**<br>
  49.      * 根据条件分页查询数据<br>
  50.      * @param statementName<br>
  51.      * @param paramMap<br>
  52.      * @param pageNum<br>
  53.      * @param recoderNum<br>
  54.      * @return<br>
  55.      */<br> 
  56.     public List searchPage(String statementName,Map paramMap,int pageNum,int recoderNum){<br> 
  57.         return this.template.searchPage(statementName, paramMap, pageNum,recoderNum);<br> 
  58.     }<br> 
  59.     /**<br>
  60.      * 删除符合条件的记录<br>
  61.      * @param statementName<br>
  62.      * @param paramMap<br>
  63.      * @return<br>
  64.      */<br> 
  65.     public int delete(String statementName,Map paramMap){<br> 
  66.         return this.template.delete(statementName, paramMap);<br> 
  67.     }<br> 
  68. } 

/**

* IBaseDao的实现

*

*/ 

public class BaseDaoImpl implements IBaseDao {

private IBatisDaoTemplate template;

public IBatisDaoTemplate getDaoTemplate() {

return this.template;

}

public void setDaoTemplate(IBatisDaoTemplate template) {

this.template=template;

}

/**

* 更新数据

* @param statementName

* @param paramMap

*/

public int update(String statementName,Map paramMap){

return this.template.update(statementName, paramMap);

}

/**

* 添加数据

* @param statementName

* @param paramMap

* @return

*/

public Object save(String statementName,Map paramMap){

return this.template.save(statementName, paramMap);

}

/**

* 根据条件查询一条数据

* @param statementName

* @param paramMap

* @return

*/

public Object load(String statementName,Map paramMap){

return this.template.load(statementName, paramMap);

}

/**

* 根据条件查询数据

* @param statementName

* @param paramMap

* @return

*/

public List searchAll(String statementName,Map paramMap){

return this.template.searchAll(statementName, paramMap);

}

/**

* 根据条件分页查询数据

* @param statementName

* @param paramMap

* @param pageNum

* @param recoderNum

* @return

*/

public List searchPage(String statementName,Map paramMap,int pageNum,int recoderNum){

return this.template.searchPage(statementName, paramMap, pageNum,recoderNum);

}

/**

* 删除符合条件的记录

* @param statementName

* @param paramMap

* @return

*/

public int delete(String statementName,Map paramMap){

return this.template.delete(statementName, paramMap);

}

}


Java代码

   1. /**<br>
   2.  * 利用IBatis操作数据库实现的模版类,Dao通过注入进行调用<br>
   3.  *<br>
   4.  */<br> 
   5. public class IBatisDaoTemplate extends SqlMapClientDaoSupport {<br> 
   6.     /**<br>
   7.      * 更新数据<br>
   8.      * @param statementName<br>
   9.      * @param paramMap<br>
  10.      */<br> 
  11.     public int update(String statementName,Map paramMap){<br> 
  12.         return this.getSqlMapClientTemplate().update(statementName, paramMap);<br> 
  13.     }<br> 
  14.     /**<br>
  15.      * 添加数据<br>
  16.      * @param statementName<br>
  17.      * @param paramMap<br>
  18.      * @return<br>
  19.      */<br> 
  20.     public Object save(String statementName,Map paramMap){<br> 
  21.         return getSqlMapClientTemplate().insert(statementName, paramMap);<br> 
  22.     }<br> 
  23.     /**<br>
  24.      * 根据条件查询一条数据<br>
  25.      * @param statementName<br>
  26.      * @param paramMap<br>
  27.      * @return<br>
  28.      */<br> 
  29.     public Object load(String statementName,Map paramMap){<br> 
  30.         return getSqlMapClientTemplate().queryForObject(statementName, paramMap);<br> 
  31.     }<br> 
  32.     /**<br>
  33.      * 根据条件查询数据<br>
  34.      * @param statementName<br>
  35.      * @param paramMap<br>
  36.      * @return<br>
  37.      */<br> 
  38.     public List searchAll(String statementName,Map paramMap){<br> 
  39.         return this.getSqlMapClientTemplate().queryForList(statementName, paramMap);<br> 
  40.     }<br> 
  41.     /**<br>
  42.      * 根据条件分页查询数据<br>
  43.      * @param statementName<br>
  44.      * @param paramMap<br>
  45.      * @param pageNum<br>
  46.      * @param recoderNum<br>
  47.      * @return<br>
  48.      */<br> 
  49.     public List searchPage(String statementName,Map paramMap,int pageNum,int recoderNum){<br> 
  50.         return this.getSqlMapClientTemplate().queryForList(statementName, pageNum, pageNum*recoderNum,(pageNum+1)*recoderNum);<br> 
  51.     }<br> 
  52.     /**<br>
  53.      * 删除符合条件的记录<br>
  54.      * @param statementName<br>
  55.      * @param paramMap<br>
  56.      * @return<br>
  57.      */<br> 
  58.     public int delete(String statementName,Map paramMap){<br> 
  59.         return this.getSqlMapClientTemplate().delete(statementName, paramMap);<br> 
  60.     }<br> 
  61. } 

你可能感兴趣的:(DAO,spring,ibatis,Blog)