转自: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. }