2008-04-12
Spring+iBatis写的公共DAO备忘
关键字: dao最近项目中使用Spring+iBatis,其中用到的公共dao记录在此
/**
* 数据库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);
}
/**
* 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);
}
}
/**
* 利用IBatis操作数据库实现的模版类,Dao通过注入进行调用
*
*/
public class IBatisDaoTemplate extends SqlMapClientDaoSupport {
/**
* 更新数据
* @param statementName
* @param paramMap
*/
public int update(String statementName,Map paramMap){
return this.getSqlMapClientTemplate().update(statementName, paramMap);
}
/**
* 添加数据
* @param statementName
* @param paramMap
* @return
*/
public Object save(String statementName,Map paramMap){
return getSqlMapClientTemplate().insert(statementName, paramMap);
}
/**
* 根据条件查询一条数据
* @param statementName
* @param paramMap
* @return
*/
public Object load(String statementName,Map paramMap){
return getSqlMapClientTemplate().queryForObject(statementName, paramMap);
}
/**
* 根据条件查询数据
* @param statementName
* @param paramMap
* @return
*/
public List searchAll(String statementName,Map paramMap){
return this.getSqlMapClientTemplate().queryForList(statementName, paramMap);
}
/**
* 根据条件分页查询数据
* @param statementName
* @param paramMap
* @param pageNum
* @param recoderNum
* @return
*/
public List searchPage(String statementName,Map paramMap,int pageNum,int recoderNum){
return this.getSqlMapClientTemplate().queryForList(statementName, pageNum, pageNum*recoderNum,(pageNum+1)*recoderNum);
}
/**
* 删除符合条件的记录
* @param statementName
* @param paramMap
* @return
*/
public int delete(String statementName,Map paramMap){
return this.getSqlMapClientTemplate().delete(statementName, paramMap);
}
}
发表评论
- 浏览: 20849 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
我的相册
P1080256
共 30 张
共 30 张
最近加入圈子
最新评论
-
使用iBatis的自动化代码生 ...
有没有根据类生产数据库和xml的?
-- by aninfeel -
使用iBatis的自动化代码生 ...
IBatis去除注释版 http://hugh-lin.javaeye.com/ ...
-- by hugh-lin -
使用iBatis的自动化代码生 ...
我的不能用啊,郁闷掉了,真的是很黄很暴力。
-- by horror -
搭建Cloud Computing测试 ...
to fredzhang : 呵呵,我只是说用hadoop/hbase来搭 ...
-- by blank -
搭建Cloud Computing测试 ...
1. gfs的论文你仔细阅读过了吗?它的思想决定了基于它应当如何来实现,如何才能 ...
-- by fredzhang






评论排行榜