#1610 - Refactor: Change SQL logging such that jdbc batch use is more obvious

This commit is contained in:
rob bygrave
2019-01-21 19:31:28 +13:00
parent b399713a85
commit c86e6b3cf9
18 changed files with 113 additions and 135 deletions
@@ -24,6 +24,8 @@ public abstract class DmlHandler implements PersistHandler, BindableRequest {
private static final Logger logger = LoggerFactory.getLogger(DmlHandler.class);
private static final int[] GENERATED_KEY_COLUMNS = new int[]{1};
private static final int BATCHED_FIRST = 1;
private static final int BATCHED = 2;
/**
* The originating request.
@@ -49,6 +51,8 @@ public abstract class DmlHandler implements PersistHandler, BindableRequest {
protected String sql;
private short batchedStatus;
protected DmlHandler(PersistRequestBean<?> persistRequest, boolean emptyStringToNull) {
this.now = System.currentTimeMillis();
this.persistRequest = persistRequest;
@@ -150,8 +154,20 @@ public abstract class DmlHandler implements PersistHandler, BindableRequest {
*/
protected void logSql(String sql) {
if (logLevelSql) {
sql = Str.add(sql, "; --bind(", bindLog.toString(), ")");
transaction.logSql(sql);
switch (batchedStatus) {
case BATCHED_FIRST: {
transaction.logSql(sql);
transaction.logSql(Str.add(" -- bind(", bindLog.toString(), ")"));
return;
}
case BATCHED: {
transaction.logSql(Str.add(" -- bind(", bindLog.toString(), ")"));
return;
}
default: {
transaction.logSql(Str.add(sql, "; -- bind(", bindLog.toString(), ")"));
}
}
}
}
@@ -250,9 +266,11 @@ public abstract class DmlHandler implements PersistHandler, BindableRequest {
BatchedPstmtHolder batch = t.getBatchControl().getPstmtHolder();
batchedPstmt = batch.getBatchedPstmt(sql, request);
if (batchedPstmt != null) {
batchedStatus = BATCHED;
return batchedPstmt.getStatement();
}
batchedStatus = BATCHED_FIRST;
PreparedStatement stmt = getPstmt(t, sql, genKeys);
batchedPstmt = new BatchedPstmt(stmt, genKeys, sql, t);