package com.ycsoft.report.query.sql; import java.io.Serializable; import java.sql.ResultSetMetaData; import java.util.List; import java.util.Map; import com.ycsoft.commons.exception.ReportException; import com.ycsoft.report.query.ResultSetExtractor; /** * 查询使用的sql接口 */ public interface QuerySql extends Serializable { /** * 返回值为合计项字符串 * 测试sql组件是否正确 * @return * @throws ReportException */ public Map<String,String> testSQL(String sql,String database) throws ReportException; /** * 获取列名列表 * @param sql * @param database * @return * @throws ReportException */ public List<String> getColumnNameList(String sql,String database) throws ReportException; /** * 结果集提取器,负责查询数据,及关闭资源,提出数据由<code>ResultSetExtractor</code>来完成 * * @param sql * @param database * @param rse 读取数据 * @return * @throws ReportException */ public <T> T getColumnRSMD(String sql, String database, ResultSetExtractor<T> rse)throws ReportException; /** * 列模板转换 * @param sql * @return */ public String translateTemplateKey(String sql); }