package com.ctrip.platform.dal.dao.sqlbuilder;
import java.sql.SQLException;
import com.ctrip.platform.dal.dao.DalHints;
import com.ctrip.platform.dal.dao.DalResultSetExtractor;
import com.ctrip.platform.dal.dao.DalRowMapper;
import com.ctrip.platform.dal.dao.ResultMerger;
public interface SelectBuilder extends SqlBuilder {
SelectBuilder requireFirst();
SelectBuilder requireSingle();
SelectBuilder nullable();
SelectBuilder simpleType();
SelectBuilder range(int start, int count);
boolean isRequireFirst();
boolean isRequireSingle();
boolean isNullable();
<T> SelectBuilder mergerWith(ResultMerger<T> merger);
<T> ResultMerger<T> getResultMerger(DalHints hints);
<T> SelectBuilder mapWith(DalRowMapper<T> mapper);
<T> SelectBuilder mapWith(Class<T> type);
<T> SelectBuilder extractorWith(DalResultSetExtractor<T> extractor);
<T> DalResultSetExtractor<T> getResultExtractor(DalHints hints) throws SQLException;
}