ibaits工具类

package com.fastrise.fastdev.base.dao;

import java.util.List;
import java.util.Map;

import org.springframework.orm.ibatis.SqlMapClientTemplate;

import com.ibatis.sqlmap.client.SqlMapClient;

/**封装 ibatis 的通用DAO(Data Access Object)基类的接口.
 * @author  luyancan
 * @created 2009-7-27
 */
public interface IbatisDao {
	
	 /**
	 * 根据主键ID查询对象.
	 * @param sqlMapId 
	 * @param primaryKey
	 * @return
	 */
	public Object getById(String sqlMapId,Object primaryKey);

	 /**
	 * 新增对象.
	 * @param sqlMapId
	 * @param paramObject 参数对象
	 * @return
	 */
	public Object insert(String sqlMapId, Object paramObject);

	 /**
	 * 更新对象.
	 * @param sqlMapId
	 * @param paramObject 参数对象
	 * @return
	 */
	public int update(String sqlMapId, Object paramObject);

	 /**
	 * 批量删除对象.
	 * @param sqlMapId
	 * @param paramObject 参数对象
	 * @return
	 */
	public int delete(String sqlMapId, Object paramObject);

	 /**
	 * 查询唯一对象.
	 * @param sqlMapId
	 * @param paramObject 参数对象
	 * @return
	 */
	public Object queryForObject(String sqlMapId, Object paramObject);

	 /**
	 * 查询唯一对象.
	 * @param sqlMapId
	 * @param paramObject 参数对象
	 * @param resultObject  返回对象
	 * @return
	 */
	public Object queryForObject(String sqlMapId, Object paramObject, Object resultObject);

	 /**
	 * 查询对象.
	 * @param sqlMapId  
	 * @param paramObject  参数对象
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public List queryForList(String sqlMapId, Object paramObject);
	
	 /**
	 * 查询对象.
	 * @param sqlMapId
	 * @param paramObject  参数对象
	 * @param start  起始记录
	 * @param limit  查询记录数
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public List queryForList(String sqlMapId, Object paramObject, int start, int limit);

     /**
     * 查询对象返回map类型.
     * @param sqlMapId
     * @param paramObject 参数对象
     * @param keyProp
     * @return
     */
    @SuppressWarnings("unchecked")
	public Map queryForMap(String sqlMapId, Object paramObject, String keyProp);

	 /**
	 * 查询对象返回map类型.
	 * @param sqlMapId
	 * @param paramObject 参数对象
	 * @param keyProp
	 * @param valueProp
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public Map queryForMap(String sqlMapId, Object paramObject, String keyProp, String valueProp);

	/**
	 * 批量执行,用于批量执行开始前调用.
	 */
	public void startBatch() throws DAOException;
	 
	/**
	 * 批量执行,配合startBatch()调用.
	 * @return
	 */
	public int executeBatch() throws DAOException;
	
	public SqlMapClient getSqlMapClient();
	
	public SqlMapClientTemplate getSqlMapClientTemplate();
}
package com.fastrise.fastdev.base.dao.ibatis;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

import com.fastrise.fastdev.base.dao.DAOException;
import com.fastrise.fastdev.base.dao.IbatisDao;

/**
 * 封装 ibatis 的通用DAO(Data Access Object)基类的实现.
 * 
 * @author luyancan
 * @created 2009-7-27
 */
public class BaseIbatisDao extends SqlMapClientDaoSupport implements IbatisDao {

	public int delete(String sqlMapId, Object paramObject) {
		return getSqlMapClientTemplate().delete(sqlMapId, paramObject);
	}

	public Object getById(String sqlMapId, Object primaryKey) {

		return getSqlMapClientTemplate().queryForObject(sqlMapId, primaryKey);

	}

	public Object insert(String sqlMapId, Object paramObject) {

		return getSqlMapClientTemplate().insert(sqlMapId, paramObject);

	}

	@SuppressWarnings("unchecked")
	public List queryForList(String sqlMapId, Object paramObject) {

		return getSqlMapClientTemplate().queryForList(sqlMapId, paramObject);

	}

	@SuppressWarnings("unchecked")
	public List queryForList(String sqlMapId, Object paramObject,int startRecord, int maxRecord) {

		return getSqlMapClientTemplate().queryForList(sqlMapId, paramObject,startRecord, maxRecord);

	}

	@SuppressWarnings("unchecked")
	public Map queryForMap(String sqlMapId, Object paramObject, String keyProp) {

		return getSqlMapClientTemplate().queryForMap(sqlMapId, paramObject,keyProp);

	}

	@SuppressWarnings("unchecked")
	public Map queryForMap(String sqlMapId, Object paramObject, String keyProp,
			String valueProp) {

		return getSqlMapClientTemplate().queryForMap(sqlMapId, paramObject,keyProp, valueProp);

	}

	public Object queryForObject(String sqlMapId, Object paramObject) {

		return getSqlMapClientTemplate().queryForObject(sqlMapId, paramObject);

	}

	public Object queryForObject(String sqlMapId, Object paramObject,
			Object resultObject) {

		return getSqlMapClientTemplate().queryForObject(sqlMapId, paramObject,resultObject);

	}

	public void startBatch() throws DAOException {
		try {
			getSqlMapClient().startBatch();
		} catch (SQLException e) {
			throw new DAOException(" Ibatis SqlMapClient start batch excute exception !", e);
		}
	}

	public int executeBatch() throws DAOException {
		try {
			return getSqlMapClient().executeBatch();
		} catch (SQLException e) {
			throw new DAOException(" Ibatis SqlMapClient  batch excute exception !", e);
		}

	}

	public int update(String sqlMapId, Object paramObject) {

		return getSqlMapClientTemplate().update(sqlMapId, paramObject);

	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值