package jef.database.jdbc; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; import java.util.List; import jef.database.DbMetaData; import jef.database.dialect.DatabaseDialect; import jef.database.innerpool.PartitionSupport; import jef.database.jdbc.statement.ResultSetLaterProcess; import jef.database.routing.jdbc.UpdateReturn; import jef.database.routing.sql.InMemoryOperateProvider; import jef.database.wrapper.populator.ResultSetExtractor; public interface JDBCTarget { PreparedStatement prepareStatement(String sql) throws SQLException; PreparedStatement prepareStatement(String sql, int generateKeys) throws SQLException; PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException; PreparedStatement prepareStatement(String sql, int[] columnIndexs) throws SQLException; PreparedStatement prepareStatement(String sql, int rsType, int concurType, int hold) throws SQLException; void releaseConnection(); public UpdateReturn innerExecuteUpdate(String sql, List<Object> ps, GenerateKeyReturnOper keyOper) throws SQLException; public <T> T innerSelectBySql(String sql, ResultSetExtractor<T> rst, List<?> objs, InMemoryOperateProvider lazy) throws SQLException; boolean isResultSetHolderTransaction(); void closeTx(); DatabaseDialect getProfile(); DbMetaData getMetaData()throws SQLException ; JDBCTarget getTarget(String changeDataSource); DatabaseDialect getDialectOf(String database); String getTransactionId(); String getDbkey(); PartitionSupport getPartitionSupport(); PreparedStatement prepareStatement(String first, ResultSetLaterProcess isReverse, boolean b)throws SQLException; Statement createStatement() throws SQLException; }