Loading RELEASE-NOTES.md +2 −1 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ 1. [ISSUE #475](https://github.com/shardingjdbc/sharding-jdbc/issues/475) 支持create index语句 ### 缺陷修正 1. [ISSUE #520](https://github.com/shardingjdbc/sharding-jdbc/issues/520) 引入分表后,唯一键冲突时异常类型不再是DuplicateKeyException 1. [ISSUE #521](https://github.com/shardingjdbc/sharding-jdbc/issues/521) YAML文件中ShardingProperties设置无效 ## 2.0.1 Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/executor/ExecutorEngine.java +9 −4 Original line number Diff line number Diff line Loading @@ -76,8 +76,9 @@ public final class ExecutorEngine implements AutoCloseable { * @param executeCallback statement execute callback * @param <T> class type of return value * @return execute result * @throws SQLException SQL exception */ public <T> List<T> executeStatement(final SQLType sqlType, final Collection<StatementUnit> statementUnits, final ExecuteCallback<T> executeCallback) { public <T> List<T> executeStatement(final SQLType sqlType, final Collection<StatementUnit> statementUnits, final ExecuteCallback<T> executeCallback) throws SQLException { return execute(sqlType, statementUnits, Collections.<List<Object>>emptyList(), executeCallback); } Loading @@ -90,9 +91,10 @@ public final class ExecutorEngine implements AutoCloseable { * @param executeCallback prepared statement execute callback * @param <T> class type of return value * @return execute result * @throws SQLException SQL exception */ public <T> List<T> executePreparedStatement( final SQLType sqlType, final Collection<PreparedStatementUnit> preparedStatementUnits, final List<Object> parameters, final ExecuteCallback<T> executeCallback) { final SQLType sqlType, final Collection<PreparedStatementUnit> preparedStatementUnits, final List<Object> parameters, final ExecuteCallback<T> executeCallback) throws SQLException { return execute(sqlType, preparedStatementUnits, Collections.singletonList(parameters), executeCallback); } Loading @@ -104,14 +106,17 @@ public final class ExecutorEngine implements AutoCloseable { * @param parameterSets parameters for SQL placeholder * @param executeCallback prepared statement execute callback * @return execute result * @throws SQLException SQL exception */ public List<int[]> executeBatch( final SQLType sqlType, final Collection<BatchPreparedStatementUnit> batchPreparedStatementUnits, final List<List<Object>> parameterSets, final ExecuteCallback<int[]> executeCallback) { final SQLType sqlType, final Collection<BatchPreparedStatementUnit> batchPreparedStatementUnits, final List<List<Object>> parameterSets, final ExecuteCallback<int[]> executeCallback) throws SQLException { return execute(sqlType, batchPreparedStatementUnits, parameterSets, executeCallback); } private <T> List<T> execute( final SQLType sqlType, final Collection<? extends BaseStatementUnit> baseStatementUnits, final List<List<Object>> parameterSets, final ExecuteCallback<T> executeCallback) { final SQLType sqlType, final Collection<? extends BaseStatementUnit> baseStatementUnits, final List<List<Object>> parameterSets, final ExecuteCallback<T> executeCallback) throws SQLException { if (baseStatementUnits.isEmpty()) { return Collections.emptyList(); } Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/executor/threadlocal/ExecutorExceptionHandler.java +7 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import java.sql.SQLException; /** * Executor runtime exception handler. * Loading Loading @@ -55,9 +57,13 @@ public final class ExecutorExceptionHandler { * Handle exception. * * @param exception to be handled exception * @throws SQLException SQL exception */ public static void handleException(final Exception exception) { public static void handleException(final Exception exception) throws SQLException { if (isExceptionThrown()) { if (exception instanceof SQLException) { throw (SQLException) exception; } throw new ShardingJdbcException(exception); } log.error("exception occur: ", exception); Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/executor/type/batch/BatchPreparedStatementExecutor.java +3 −1 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import io.shardingjdbc.core.executor.ExecuteCallback; import io.shardingjdbc.core.executor.ExecutorEngine; import lombok.RequiredArgsConstructor; import java.sql.SQLException; import java.util.Collection; import java.util.List; import java.util.Map; Loading @@ -50,8 +51,9 @@ public final class BatchPreparedStatementExecutor { * Execute batch. * * @return execute results * @throws SQLException SQL exception */ public int[] executeBatch() { public int[] executeBatch() throws SQLException { return accumulate(executorEngine.executeBatch(sqlType, batchPreparedStatementUnits, parameterSets, new ExecuteCallback<int[]>() { @Override Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/executor/type/prepared/PreparedStatementExecutor.java +7 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import lombok.RequiredArgsConstructor; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Collection; import java.util.List; Loading @@ -49,8 +50,9 @@ public final class PreparedStatementExecutor { * Execute query. * * @return result set list * @throws SQLException SQL exception */ public List<ResultSet> executeQuery() { public List<ResultSet> executeQuery() throws SQLException { return executorEngine.executePreparedStatement(sqlType, preparedStatementUnits, parameters, new ExecuteCallback<ResultSet>() { @Override Loading @@ -64,8 +66,9 @@ public final class PreparedStatementExecutor { * Execute update. * * @return effected records count * @throws SQLException SQL exception */ public int executeUpdate() { public int executeUpdate() throws SQLException { List<Integer> results = executorEngine.executePreparedStatement(sqlType, preparedStatementUnits, parameters, new ExecuteCallback<Integer>() { @Override Loading @@ -88,8 +91,9 @@ public final class PreparedStatementExecutor { * Execute SQL. * * @return return true if is DQL, false if is DML * @throws SQLException SQL exception */ public boolean execute() { public boolean execute() throws SQLException { List<Boolean> result = executorEngine.executePreparedStatement(sqlType, preparedStatementUnits, parameters, new ExecuteCallback<Boolean>() { @Override Loading Loading
RELEASE-NOTES.md +2 −1 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ 1. [ISSUE #475](https://github.com/shardingjdbc/sharding-jdbc/issues/475) 支持create index语句 ### 缺陷修正 1. [ISSUE #520](https://github.com/shardingjdbc/sharding-jdbc/issues/520) 引入分表后,唯一键冲突时异常类型不再是DuplicateKeyException 1. [ISSUE #521](https://github.com/shardingjdbc/sharding-jdbc/issues/521) YAML文件中ShardingProperties设置无效 ## 2.0.1 Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/executor/ExecutorEngine.java +9 −4 Original line number Diff line number Diff line Loading @@ -76,8 +76,9 @@ public final class ExecutorEngine implements AutoCloseable { * @param executeCallback statement execute callback * @param <T> class type of return value * @return execute result * @throws SQLException SQL exception */ public <T> List<T> executeStatement(final SQLType sqlType, final Collection<StatementUnit> statementUnits, final ExecuteCallback<T> executeCallback) { public <T> List<T> executeStatement(final SQLType sqlType, final Collection<StatementUnit> statementUnits, final ExecuteCallback<T> executeCallback) throws SQLException { return execute(sqlType, statementUnits, Collections.<List<Object>>emptyList(), executeCallback); } Loading @@ -90,9 +91,10 @@ public final class ExecutorEngine implements AutoCloseable { * @param executeCallback prepared statement execute callback * @param <T> class type of return value * @return execute result * @throws SQLException SQL exception */ public <T> List<T> executePreparedStatement( final SQLType sqlType, final Collection<PreparedStatementUnit> preparedStatementUnits, final List<Object> parameters, final ExecuteCallback<T> executeCallback) { final SQLType sqlType, final Collection<PreparedStatementUnit> preparedStatementUnits, final List<Object> parameters, final ExecuteCallback<T> executeCallback) throws SQLException { return execute(sqlType, preparedStatementUnits, Collections.singletonList(parameters), executeCallback); } Loading @@ -104,14 +106,17 @@ public final class ExecutorEngine implements AutoCloseable { * @param parameterSets parameters for SQL placeholder * @param executeCallback prepared statement execute callback * @return execute result * @throws SQLException SQL exception */ public List<int[]> executeBatch( final SQLType sqlType, final Collection<BatchPreparedStatementUnit> batchPreparedStatementUnits, final List<List<Object>> parameterSets, final ExecuteCallback<int[]> executeCallback) { final SQLType sqlType, final Collection<BatchPreparedStatementUnit> batchPreparedStatementUnits, final List<List<Object>> parameterSets, final ExecuteCallback<int[]> executeCallback) throws SQLException { return execute(sqlType, batchPreparedStatementUnits, parameterSets, executeCallback); } private <T> List<T> execute( final SQLType sqlType, final Collection<? extends BaseStatementUnit> baseStatementUnits, final List<List<Object>> parameterSets, final ExecuteCallback<T> executeCallback) { final SQLType sqlType, final Collection<? extends BaseStatementUnit> baseStatementUnits, final List<List<Object>> parameterSets, final ExecuteCallback<T> executeCallback) throws SQLException { if (baseStatementUnits.isEmpty()) { return Collections.emptyList(); } Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/executor/threadlocal/ExecutorExceptionHandler.java +7 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import java.sql.SQLException; /** * Executor runtime exception handler. * Loading Loading @@ -55,9 +57,13 @@ public final class ExecutorExceptionHandler { * Handle exception. * * @param exception to be handled exception * @throws SQLException SQL exception */ public static void handleException(final Exception exception) { public static void handleException(final Exception exception) throws SQLException { if (isExceptionThrown()) { if (exception instanceof SQLException) { throw (SQLException) exception; } throw new ShardingJdbcException(exception); } log.error("exception occur: ", exception); Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/executor/type/batch/BatchPreparedStatementExecutor.java +3 −1 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import io.shardingjdbc.core.executor.ExecuteCallback; import io.shardingjdbc.core.executor.ExecutorEngine; import lombok.RequiredArgsConstructor; import java.sql.SQLException; import java.util.Collection; import java.util.List; import java.util.Map; Loading @@ -50,8 +51,9 @@ public final class BatchPreparedStatementExecutor { * Execute batch. * * @return execute results * @throws SQLException SQL exception */ public int[] executeBatch() { public int[] executeBatch() throws SQLException { return accumulate(executorEngine.executeBatch(sqlType, batchPreparedStatementUnits, parameterSets, new ExecuteCallback<int[]>() { @Override Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/executor/type/prepared/PreparedStatementExecutor.java +7 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import lombok.RequiredArgsConstructor; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Collection; import java.util.List; Loading @@ -49,8 +50,9 @@ public final class PreparedStatementExecutor { * Execute query. * * @return result set list * @throws SQLException SQL exception */ public List<ResultSet> executeQuery() { public List<ResultSet> executeQuery() throws SQLException { return executorEngine.executePreparedStatement(sqlType, preparedStatementUnits, parameters, new ExecuteCallback<ResultSet>() { @Override Loading @@ -64,8 +66,9 @@ public final class PreparedStatementExecutor { * Execute update. * * @return effected records count * @throws SQLException SQL exception */ public int executeUpdate() { public int executeUpdate() throws SQLException { List<Integer> results = executorEngine.executePreparedStatement(sqlType, preparedStatementUnits, parameters, new ExecuteCallback<Integer>() { @Override Loading @@ -88,8 +91,9 @@ public final class PreparedStatementExecutor { * Execute SQL. * * @return return true if is DQL, false if is DML * @throws SQLException SQL exception */ public boolean execute() { public boolean execute() throws SQLException { List<Boolean> result = executorEngine.executePreparedStatement(sqlType, preparedStatementUnits, parameters, new ExecuteCallback<Boolean>() { @Override Loading