64 } |
64 } |
65 |
65 |
66 public void executeQuery(SQLCommand sqlCommand, Formatter formatter) throws SQLException { |
66 public void executeQuery(SQLCommand sqlCommand, Formatter formatter) throws SQLException { |
67 formatter.writeStartBatch(); |
67 formatter.writeStartBatch(); |
68 formatter.writeStartDatabase(databaseDefinition); |
68 formatter.writeStartDatabase(databaseDefinition); |
|
69 formatter.writeStartStatement(); |
|
70 formatter.writeQuery(sqlCommand.getQuery()); |
|
71 formatter.writeParameters(sqlCommand.getParameters()); |
69 processCommand(sqlCommand, formatter); |
72 processCommand(sqlCommand, formatter); |
|
73 formatter.writeEndStatement(); |
70 formatter.writeEndDatabase(); |
74 formatter.writeEndDatabase(); |
71 formatter.writeEndBatch(); |
75 formatter.writeEndBatch(); |
72 } |
76 } |
73 |
77 |
74 public void executeBatch(Batch batch, Formatter formatter) throws SQLException { |
78 public void executeBatch(Batch batch, Formatter formatter) throws SQLException { |
75 formatter.writeStartBatch(); |
79 formatter.writeStartBatch(); |
76 formatter.writeStartDatabase(databaseDefinition); |
80 formatter.writeStartDatabase(databaseDefinition); |
77 while (batch.hasNext()) { |
81 while (batch.hasNext()) { |
78 processCommand(batch.next(), formatter); |
82 SQLCommand sqlCommand = batch.next(); |
|
83 formatter.writeStartStatement(); |
|
84 formatter.writeQuery(sqlCommand.getQuery()); |
|
85 formatter.writeParameters(sqlCommand.getParameters()); |
|
86 processCommand(sqlCommand, formatter); |
|
87 formatter.writeEndStatement(); |
79 } |
88 } |
80 formatter.writeEndDatabase(); |
89 formatter.writeEndDatabase(); |
81 formatter.writeEndBatch(); |
90 formatter.writeEndBatch(); |
82 } |
91 } |
83 |
92 |
88 |
97 |
89 boolean isRS = ps.execute(); |
98 boolean isRS = ps.execute(); |
90 log.log(Level.FINE, "Statement executed"); |
99 log.log(Level.FINE, "Statement executed"); |
91 if (isRS) { |
100 if (isRS) { |
92 try (ResultSet rs = ps.getResultSet()) { |
101 try (ResultSet rs = ps.getResultSet()) { |
93 processResultSet(sqlCommand, rs, formatter); |
102 processResultSet(rs, formatter); |
94 } |
103 } |
95 } else { |
104 } else { |
96 processUpdateResult(sqlCommand, ps, formatter); |
105 processUpdateResult(ps, formatter); |
97 } |
106 } |
98 logWarnings(ps); |
107 logWarnings(ps); |
99 |
108 |
100 while (ps.getMoreResults() || ps.getUpdateCount() > -1) { |
109 while (ps.getMoreResults() || ps.getUpdateCount() > -1) { |
101 ResultSet rs = ps.getResultSet(); |
110 ResultSet rs = ps.getResultSet(); |
102 if (rs == null) { |
111 if (rs == null) { |
103 processUpdateResult(sqlCommand, ps, formatter); |
112 processUpdateResult(ps, formatter); |
104 } else { |
113 } else { |
105 processResultSet(sqlCommand, rs, formatter); |
114 processResultSet(rs, formatter); |
106 rs.close(); |
115 rs.close(); |
107 } |
116 } |
108 logWarnings(ps); |
117 logWarnings(ps); |
109 } |
118 } |
110 } |
119 } |
111 } |
120 } |
112 |
121 |
113 private void processUpdateResult(SQLCommand sqlCommand, PreparedStatement ps, Formatter formatter) throws SQLException { |
122 private void processUpdateResult(PreparedStatement ps, Formatter formatter) throws SQLException { |
114 formatter.writeStartUpdatesResult(); |
123 formatter.writeUpdatesResult(ps.getUpdateCount()); |
115 formatter.writeQuery(sqlCommand.getQuery()); |
|
116 formatter.writeParameters(sqlCommand.getParameters()); |
|
117 formatter.writeUpdatedRowsCount(ps.getUpdateCount()); |
|
118 formatter.writeEndUpdatesResult(); |
|
119 } |
124 } |
120 |
125 |
121 private void processResultSet(SQLCommand sqlCommand, ResultSet rs, Formatter formatter) throws SQLException { |
126 private void processResultSet(ResultSet rs, Formatter formatter) throws SQLException { |
122 formatter.writeStartResultSet(); |
127 formatter.writeStartResultSet(new ColumnsHeader(rs.getMetaData())); |
123 formatter.writeQuery(sqlCommand.getQuery()); |
|
124 formatter.writeParameters(sqlCommand.getParameters()); |
|
125 |
128 |
126 processResultSetRows(rs, formatter); |
|
127 |
|
128 formatter.writeEndResultSet(); |
|
129 } |
|
130 |
|
131 private void processResultSetRows(ResultSet rs, Formatter formatter) throws SQLException { |
|
132 formatter.writeColumnsHeader(new ColumnsHeader(rs.getMetaData())); |
|
133 int columnCount = rs.getMetaData().getColumnCount(); |
129 int columnCount = rs.getMetaData().getColumnCount(); |
134 |
130 |
135 while (rs.next()) { |
131 while (rs.next()) { |
136 formatter.writeStartRow(); |
132 formatter.writeStartRow(); |
137 |
133 |