From f8fc5e8bb9112baacf32e0a795b27497afec5bde Mon Sep 17 00:00:00 2001 From: Chrriis Date: Fri, 24 Feb 2012 17:10:13 +0000 Subject: [PATCH] [#1177] Add SQL Console module to jOOQ - Fixed parameters display in logger. --- .../SqlQueryDebuggerExecuteListener.java | 5 ----- .../UsageTrackingPreparedStatement.java | 20 ++++++++----------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/jOOQ-sql-console/src/main/java/org/jooq/debugger/SqlQueryDebuggerExecuteListener.java b/jOOQ-sql-console/src/main/java/org/jooq/debugger/SqlQueryDebuggerExecuteListener.java index a57ecca785..7ade47472b 100644 --- a/jOOQ-sql-console/src/main/java/org/jooq/debugger/SqlQueryDebuggerExecuteListener.java +++ b/jOOQ-sql-console/src/main/java/org/jooq/debugger/SqlQueryDebuggerExecuteListener.java @@ -78,7 +78,6 @@ public class SqlQueryDebuggerExecuteListener extends DefaultExecuteListener { } aggregatedPreparationDuration += System.currentTimeMillis() - startPreparationTime; PreparedStatement statement = ctx.statement(); - // TODO: How to wrap CallableStatement ? // Wrapping it with UsageTrackingPreparedStatement will cause // ClassCastExceptions in jOOQ. Maybe there is a design issue? @@ -129,10 +128,6 @@ public class SqlQueryDebuggerExecuteListener extends DefaultExecuteListener { } ResultSet resultSet = ctx.resultSet(); String[] sql = ctx.batchSQL(); - // Temporary code to avoid bug of BatchSingle not filling the batchSQL array. - if(sql.length == 1 && sql[0] == null) { - sql = new String[] {ctx.sql()}; - } SqlQueryType sqlQueryType = getSqlQueryType(sql[0]); if(sql.length == 1) { PreparedStatement statement = ctx.statement(); diff --git a/jOOQ-sql-console/src/main/java/org/jooq/debugger/UsageTrackingPreparedStatement.java b/jOOQ-sql-console/src/main/java/org/jooq/debugger/UsageTrackingPreparedStatement.java index 8fe2d578c3..f9e7f654b8 100644 --- a/jOOQ-sql-console/src/main/java/org/jooq/debugger/UsageTrackingPreparedStatement.java +++ b/jOOQ-sql-console/src/main/java/org/jooq/debugger/UsageTrackingPreparedStatement.java @@ -294,7 +294,7 @@ public class UsageTrackingPreparedStatement implements PreparedStatement { @Override public void setNString(int parameterIndex, String x) throws SQLException { stmt.setNString(parameterIndex, x); - logValue(parameterIndex, x == null? null: '"' + x + '"'); + logValue(parameterIndex, x == null? null: '\'' + x.replace("'", "''") + '\''); } @Override @@ -354,7 +354,7 @@ public class UsageTrackingPreparedStatement implements PreparedStatement { @Override public void setString(int parameterIndex, String x) throws SQLException { stmt.setString(parameterIndex, x); - logValue(parameterIndex, x == null? null: '"' + x + '"'); + logValue(parameterIndex, x == null? null: '\'' + x.replace("'", "''") + '\''); } @Override @@ -624,7 +624,6 @@ public class UsageTrackingPreparedStatement implements PreparedStatement { return stmt; } - private boolean isNew = true; private StringBuilder sb = new StringBuilder(); private List paramList = new ArrayList(); @@ -641,25 +640,22 @@ public class UsageTrackingPreparedStatement implements PreparedStatement { } } sb.append("]"); - isNew = true; } private void logValue(int parameterIndex, Object o) { - isNew = false; - int missingLength = parameterIndex + 1 - paramList.size(); + // parameters in SQL are 1-based + int missingLength = parameterIndex - paramList.size(); for(int i=0; i