package com.cabletech.business.base.dao; import java.io.Serializable; import java.util.List; import java.util.Map; import com.cabletech.business.base.condition.ConditionGenerate; import com.cabletech.common.base.BaseDao; import com.cabletech.common.util.Page; /** * DAO基类 * * @author 杨隽 2012-01-09 创建 * @author 杨隽 2012-02-06 修改conditionGenerate.getCondition()为conditionGenerate. * getBusinessTableDataCondition() * @param <T> * @param <PK> */ public abstract class CommonBaseDao<T, PK extends Serializable> extends BaseDao<T, PK> { /** * 根据查询条件获取表单的分页数据信息 * * @param conditionGenerate * ConditionGenerate 查询条件生成器 * @return Page<Map<String, Object>> 表单的分页数据信息 */ @SuppressWarnings("unchecked") public Page<Map<String, Object>> queryPageForSql( ConditionGenerate conditionGenerate) { StringBuffer sql = getSqlBuffer(conditionGenerate); return (Page<Map<String, Object>>) super.getSQLPageAll( conditionGenerate.getPage(), sql.toString()); } /** * 根据查询条件获取表单的数据信息 * * @param conditionGenerate * ConditionGenerate 查询条件生成器 * @return List<Map<String, Object>> 表单的数据信息 */ public List<Map<String, Object>> queryListForSql( ConditionGenerate conditionGenerate) { StringBuffer sql = getSqlBuffer(conditionGenerate); return super.getSQLALL(sql.toString()); } /** * 获取根据查询条件生成的sql语句 * * @param conditionGenerate * ConditionGenerate 查询条件生成器 * @return StringBuffer 根据查询条件生成的sql语句 */ public StringBuffer getSqlBuffer(ConditionGenerate conditionGenerate) { StringBuffer sql = new StringBuffer(""); sql.append(getSql()); sql.append(conditionGenerate.getBusinessTableDataCondition()); sql.append(conditionGenerate.getOrder()); return sql; } /** * 获取表单数据信息的sql语句 * * @return String 获取表单数据信息的sql语句 */ public abstract String getSql(); }