package jef.database.routing.jdbc;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import jef.database.jdbc.GenerateKeyReturnOper;
public interface SQLExecutor {
public void setFetchSize(int fetchSize);
public void setMaxResults(int maxRows);
public void setQueryTimeout(int queryTimeout);
/**
* 执行查询
* @param resultType
* @param resultConcurrency
* @param resultHoldability
* @param params
* @return
* @throws SQLException
*/
public ResultSet getResultSet(int resultType,int resultConcurrency,int resultHoldability,List<ParameterContext> params) throws SQLException;
/**
* 执行Update Delete Insert等操作
* @param generateKeys
* @param returnIndex
* @param returnColumns
* @param params
* @return
* @throws SQLException
*/
public UpdateReturn executeUpdate(GenerateKeyReturnOper generateKeys,List<ParameterContext> params) throws SQLException;
/**
* 执行Batch操作
* @param autoGeneratedKeys
* @param columnIndexes
* @param columnNames
* @param params
* @return
* @throws SQLException
*/
public BatchReturn executeBatch(GenerateKeyReturnOper generateKeys, List<List<ParameterContext>> params) throws SQLException;
}