Spring+iBatis写的公共DAO备忘

本文介绍了一个基于Spring和iBatis的通用DAO接口及其实现,提供了包括增删改查在内的基本数据库操作方法,有助于简化项目的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. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值