diff -r ecd17aad1178 -r da1e38386d84 java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java --- a/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java Tue Jan 07 21:53:24 2014 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java Tue Jan 07 21:54:59 2014 +0100 @@ -66,7 +66,11 @@ public void executeQuery(SQLCommand sqlCommand, Formatter formatter) throws SQLException { formatter.writeStartBatch(); formatter.writeStartDatabase(databaseDefinition); + formatter.writeStartStatement(); + formatter.writeQuery(sqlCommand.getQuery()); + formatter.writeParameters(sqlCommand.getParameters()); processCommand(sqlCommand, formatter); + formatter.writeEndStatement(); formatter.writeEndDatabase(); formatter.writeEndBatch(); } @@ -75,7 +79,12 @@ formatter.writeStartBatch(); formatter.writeStartDatabase(databaseDefinition); while (batch.hasNext()) { - processCommand(batch.next(), formatter); + SQLCommand sqlCommand = batch.next(); + formatter.writeStartStatement(); + formatter.writeQuery(sqlCommand.getQuery()); + formatter.writeParameters(sqlCommand.getParameters()); + processCommand(sqlCommand, formatter); + formatter.writeEndStatement(); } formatter.writeEndDatabase(); formatter.writeEndBatch(); @@ -90,19 +99,19 @@ log.log(Level.FINE, "Statement executed"); if (isRS) { try (ResultSet rs = ps.getResultSet()) { - processResultSet(sqlCommand, rs, formatter); + processResultSet(rs, formatter); } } else { - processUpdateResult(sqlCommand, ps, formatter); + processUpdateResult(ps, formatter); } logWarnings(ps); while (ps.getMoreResults() || ps.getUpdateCount() > -1) { ResultSet rs = ps.getResultSet(); if (rs == null) { - processUpdateResult(sqlCommand, ps, formatter); + processUpdateResult(ps, formatter); } else { - processResultSet(sqlCommand, rs, formatter); + processResultSet(rs, formatter); rs.close(); } logWarnings(ps); @@ -110,26 +119,13 @@ } } - private void processUpdateResult(SQLCommand sqlCommand, PreparedStatement ps, Formatter formatter) throws SQLException { - formatter.writeStartUpdatesResult(); - formatter.writeQuery(sqlCommand.getQuery()); - formatter.writeParameters(sqlCommand.getParameters()); - formatter.writeUpdatedRowsCount(ps.getUpdateCount()); - formatter.writeEndUpdatesResult(); + private void processUpdateResult(PreparedStatement ps, Formatter formatter) throws SQLException { + formatter.writeUpdatesResult(ps.getUpdateCount()); } - private void processResultSet(SQLCommand sqlCommand, ResultSet rs, Formatter formatter) throws SQLException { - formatter.writeStartResultSet(); - formatter.writeQuery(sqlCommand.getQuery()); - formatter.writeParameters(sqlCommand.getParameters()); + private void processResultSet(ResultSet rs, Formatter formatter) throws SQLException { + formatter.writeStartResultSet(new ColumnsHeader(rs.getMetaData())); - processResultSetRows(rs, formatter); - - formatter.writeEndResultSet(); - } - - private void processResultSetRows(ResultSet rs, Formatter formatter) throws SQLException { - formatter.writeColumnsHeader(new ColumnsHeader(rs.getMetaData())); int columnCount = rs.getMetaData().getColumnCount(); while (rs.next()) { @@ -142,6 +138,7 @@ formatter.writeEndRow(); } + formatter.writeEndResultSet(); } private void logWarnings(PreparedStatement ps) throws SQLException {