Skip to content

Commit

Permalink
MGR-107 use PreparedStatementCallback
Browse files Browse the repository at this point in the history
  • Loading branch information
madness-inc committed Dec 17, 2020
1 parent 7fbd68a commit 3b1a6fa
Showing 1 changed file with 15 additions and 19 deletions.
Expand Up @@ -15,9 +15,7 @@
*/
package org.appng.application.manager.business;

import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
Expand All @@ -42,8 +40,8 @@
import org.flywaydb.core.internal.resource.StringResource;
import org.flywaydb.core.internal.sqlscript.SqlScript;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.CallableStatementCallback;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementCallback;
import org.springframework.jdbc.datasource.SingleConnectionDataSource;
import org.springframework.jdbc.support.rowset.ResultSetWrappingSqlRowSet;
import org.springframework.jdbc.support.rowset.SqlRowSet;
Expand Down Expand Up @@ -89,28 +87,26 @@ public void perform(Site site, Application application, Environment environment,
}

public SqlStatement processSingleStatement(String sql, JdbcTemplate jdbcTemplate) {
String result;
String sqlResult;
boolean hasError = false;
try {
result = jdbcTemplate.execute(sql, new CallableStatementCallback<String>() {
public String doInCallableStatement(CallableStatement ps) throws SQLException, DataAccessException {
String result = "";
ps.execute();
int up = ps.getUpdateCount();
ResultSet rs = ps.getResultSet();
if (null != rs) {
result = buildResultSetTable(new ResultSetWrappingSqlRowSet(rs));
} else if (up > -1) {
result = "<div>" + up + " row(s) affected</div>";
}
return result;
sqlResult = jdbcTemplate.execute(sql, (PreparedStatementCallback<String>) (ps -> {
String result = "";
ps.execute();
int up = ps.getUpdateCount();
ResultSet rs = ps.getResultSet();
if (null != rs) {
result = buildResultSetTable(new ResultSetWrappingSqlRowSet(rs));
} else if (up > -1) {
result = "<div>" + up + " row(s) affected</div>";
}
});
return result;
}));
} catch (DataAccessException e) {
result = "<div style='border:1px solid red'>" + e.getCause().getMessage() + "</div>";
sqlResult = "<div style='border:1px solid red'>" + e.getCause().getMessage() + "</div>";
hasError = true;
}
return new SqlStatement(sql, result, hasError);
return new SqlStatement(sql, sqlResult, hasError);
}

public String buildResultSetTable(SqlRowSet rowSet) {
Expand Down

0 comments on commit 3b1a6fa

Please sign in to comment.