未验证 提交 e099e1a7 编写于 作者: P panjuan 提交者: GitHub

Merge pull request #2999 from sunbufu/feature#2981

Replay for ShardingPreparedStatement when execute.
......@@ -197,6 +197,7 @@ public final class ShardingPreparedStatement extends AbstractShardingPreparedSta
private void initPreparedStatementExecutor() throws SQLException {
preparedStatementExecutor.init(sqlRouteResult);
setParametersForStatements();
replayMethodForStatements();
}
private void setParametersForStatements() {
......@@ -205,6 +206,12 @@ public final class ShardingPreparedStatement extends AbstractShardingPreparedSta
}
}
private void replayMethodForStatements() {
for (Statement each : preparedStatementExecutor.getStatements()) {
replayMethodsInvocation(each);
}
}
private void clearPrevious() throws SQLException {
preparedStatementExecutor.clear();
}
......
......@@ -219,4 +219,16 @@ public final class ShardingPreparedStatementTest extends AbstractShardingJDBCDat
assertThat(result.length, is(0));
}
}
@Test
public void assertInitPreparedStatementExecutorWithReplayMethod() throws SQLException {
String sql = "SELECT item_id from t_order_item where user_id = ? and order_id= ? and status = 'BATCH'";
try (PreparedStatement preparedStatement = getShardingDataSource().getConnection().prepareStatement(sql)) {
preparedStatement.setQueryTimeout(1);
preparedStatement.setInt(1, 11);
preparedStatement.setInt(2, 11);
preparedStatement.executeQuery();
assertThat(preparedStatement.getQueryTimeout(), is(1));
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册