Skip to content

Commit a338eeb

Browse files
committed
SQLのログ出力処理の呼び出し
1 parent 07eb1a9 commit a338eeb

12 files changed

+698
-635
lines changed

sqlmapper-parent/sqlmapper-core/src/main/java/com/github/mygreen/sqlmapper/core/query/InsertClause.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ public InsertClause(final int capacity) {
3737
}
3838

3939
/**
40-
* INTO句をSQLに変換します
40+
* INTO句({@literal (col1, col2...)をSQLに変換します
4141
* @return SQL
4242
*/
4343
public String toIntoSql() {
4444
return intoSql.toString();
4545
}
4646

4747
/**
48-
* VALUES句をSQLに変換します。
48+
* VALUES句({@literal values (exp1, exp2, ...)}
4949
* @return SQL
5050
*/
5151
public String toValuesSql() {

sqlmapper-parent/sqlmapper-core/src/main/java/com/github/mygreen/sqlmapper/core/query/auto/AutoAnyDeleteExecutor.java

+2
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ private void prepareSql() {
108108
*/
109109
public int execute() {
110110
prepare();
111+
context.getSqlLogger().out(executedSql, paramValues);
112+
111113
return getJdbcTemplate().update(executedSql, paramValues.toArray());
112114
}
113115

sqlmapper-parent/sqlmapper-core/src/main/java/com/github/mygreen/sqlmapper/core/query/auto/AutoBatchDeleteExecutor.java

+1
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ private boolean isOptimisticLock() {
143143
public int execute() {
144144

145145
prepare();
146+
context.getSqlLogger().out(executedSql, paramValues);
146147

147148
final int rows = getJdbcTemplate().update(executedSql, paramValues.toArray());
148149
if(isOptimisticLock()) {

sqlmapper-parent/sqlmapper-core/src/main/java/com/github/mygreen/sqlmapper/core/query/auto/AutoBatchInsertExecutor.java

+23
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.github.mygreen.sqlmapper.core.id.IdentityIdGenerator;
2121
import com.github.mygreen.sqlmapper.core.meta.PropertyMeta;
2222
import com.github.mygreen.sqlmapper.core.meta.PropertyValueInvoker;
23+
import com.github.mygreen.sqlmapper.core.query.InsertClause;
2324
import com.github.mygreen.sqlmapper.core.query.JdbcTemplateBuilder;
2425
import com.github.mygreen.sqlmapper.core.type.ValueType;
2526
import com.github.mygreen.sqlmapper.core.util.NumberConvertUtils;
@@ -51,6 +52,11 @@ public class AutoBatchInsertExecutor {
5152
*/
5253
private final SqlMapperContext context;
5354

55+
/**
56+
* INSERT句 - SQLログ出力のために使用する。
57+
*/
58+
private InsertClause insertClause = new InsertClause();
59+
5460
/**
5561
* クエリのパラメータ - エンティティごとの設定
5662
*/
@@ -153,6 +159,10 @@ private void prepareSqlParam() {
153159
// IDENTITYの主キーでない場合は通常カラムとして追加
154160
if(!usingIdentityKeyColumnNames.contains(columnName)) {
155161
usingColumnNames.add(columnName);
162+
163+
if(context.getSqlLogger().getProp().isEnabled()) {
164+
insertClause.addSql(columnName, "?");
165+
}
156166
}
157167

158168
}
@@ -247,6 +257,19 @@ public int[] execute() {
247257

248258
prepare();
249259

260+
if(context.getSqlLogger().getProp().isEnabled()) {
261+
String executedSql = "insert into "
262+
+ query.getEntityMeta().getTableMeta().getFullName()
263+
+ insertClause.toIntoSql()
264+
+ insertClause.toValuesSql();
265+
266+
List<Object[]> batchArgs = new ArrayList<>(batchParams.length);
267+
for(MapSqlParameterSource paramSource : batchParams) {
268+
batchArgs.add(paramSource.getValues().values().toArray());
269+
}
270+
context.getSqlLogger().outBatch(executedSql, batchArgs);
271+
}
272+
250273
if(this.usingIdentityKeyColumnNames.isEmpty()) {
251274
// 主キーがIDENTITYによる生成でない場合
252275
return insertOperation.executeBatch(batchParams);

sqlmapper-parent/sqlmapper-core/src/main/java/com/github/mygreen/sqlmapper/core/query/auto/AutoBatchUpdateExecutor.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,10 @@ public int[] execute() {
235235
return new int[query.getEntitySize()];
236236
}
237237

238-
int[] res = getJdbcTemplate().batchUpdate(executedSql, QueryUtils.convertBatchArgs(batchParams));
238+
final List<Object[]> batchArgs = QueryUtils.convertBatchArgs(batchParams);
239+
context.getSqlLogger().outBatch(executedSql, batchArgs);
240+
241+
int[] res = getJdbcTemplate().batchUpdate(executedSql, batchArgs);
239242

240243
final int dataSize = query.getEntitySize();
241244
for(int i=0; i < dataSize; i++) {

sqlmapper-parent/sqlmapper-core/src/main/java/com/github/mygreen/sqlmapper/core/query/auto/AutoDeleteExecutor.java

+1
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ private boolean isOptimisticLock() {
133133
public int execute() {
134134

135135
prepare();
136+
context.getSqlLogger().out(executedSql, paramValues);
136137

137138
final int rows = getJdbcTemplate().update(executedSql, paramValues.toArray());
138139
if(isOptimisticLock()) {

sqlmapper-parent/sqlmapper-core/src/main/java/com/github/mygreen/sqlmapper/core/query/auto/AutoInsertExecutor.java

+19
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.github.mygreen.sqlmapper.core.id.IdentityIdGenerator;
2020
import com.github.mygreen.sqlmapper.core.meta.PropertyMeta;
2121
import com.github.mygreen.sqlmapper.core.meta.PropertyValueInvoker;
22+
import com.github.mygreen.sqlmapper.core.query.InsertClause;
2223
import com.github.mygreen.sqlmapper.core.query.JdbcTemplateBuilder;
2324
import com.github.mygreen.sqlmapper.core.type.ValueType;
2425
import com.github.mygreen.sqlmapper.core.util.NumberConvertUtils;
@@ -50,6 +51,11 @@ public class AutoInsertExecutor {
5051
*/
5152
private final SqlMapperContext context;
5253

54+
/**
55+
* INSERT句 - SQLログ出力のために使用する。
56+
*/
57+
private InsertClause insertClause = new InsertClause();
58+
5359
/**
5460
* クエリのパラメータです。
5561
*/
@@ -127,6 +133,10 @@ private void prepareSqlParam() {
127133
// IDENTITYの主キーでない場合は通常カラムとして追加
128134
if(!usingIdentityKeyColumnNames.contains(columnName)) {
129135
usingColumnNames.add(columnName);
136+
137+
if(context.getSqlLogger().getProp().isEnabled()) {
138+
insertClause.addSql(columnName, "?");
139+
}
130140
}
131141

132142
// クエリのパラメータの組み立て
@@ -225,6 +235,15 @@ private JdbcTemplate getJdbcTemplate() {
225235
public int execute() {
226236
prepare();
227237

238+
if(context.getSqlLogger().getProp().isEnabled()) {
239+
String executedSql = "insert into "
240+
+ query.getEntityMeta().getTableMeta().getFullName()
241+
+ insertClause.toIntoSql()
242+
+ insertClause.toValuesSql();
243+
244+
context.getSqlLogger().out(executedSql, paramSource.getValues().values());
245+
}
246+
228247
if(this.usingIdentityKeyColumnNames.isEmpty()) {
229248
// 主キーがIDENTITYによる生成しない場合
230249
return insertOperation.execute(paramSource);

0 commit comments

Comments
 (0)