Added better result set handing

master
Thorsten Muerell 7 years ago
parent 3848496c5c
commit 29276fb16f

@ -10,6 +10,8 @@ import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Statement;
import java.sql.Types;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Vector;
@ -66,7 +68,9 @@ public class SqlExecutor {
Statement stmt = conn.createStatement();
try {
stmt.execute(sql.trim());
String cleanedSql = sql.trim();
cleanedSql = cleanedSql.replaceAll("/$", "");
stmt.execute(cleanedSql);
log.info("Executed");
} catch (SQLException e) {
return Result.builder() //
@ -175,7 +179,9 @@ public class SqlExecutor {
ColumnBuilder columnBuilder = Column.builder();
int columnType = metaData.getColumnType(columnIndex);
if (columnType == Types.VARCHAR) {
if (rs.getString(columnIndex) == null) {
columnBuilder.value(null);
} else if (columnType == Types.VARCHAR) {
columnBuilder.value(rs.getString(columnIndex));
} else if (columnType == Types.NUMERIC) {
columnBuilder.value(rs.getLong(columnIndex));
@ -184,19 +190,17 @@ public class SqlExecutor {
} else if (columnType == Types.TIME) {
columnBuilder.value(rs.getTime(columnIndex));
} else if (columnType == Types.TIMESTAMP) {
columnBuilder.value(rs.getTimestamp(columnIndex));
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
columnBuilder.value(df.format(rs.getTimestamp(columnIndex)));
} else if (columnType == Types.CLOB) {
Clob clob = rs.getClob(columnIndex);
if (clob != null) {
columnBuilder.value(clob.getSubString(1, 100));
} else {
columnBuilder.value(null);
}
columnBuilder.value(clob.getSubString(1, 100));
} else if (columnType == Types.BLOB) {
columnBuilder.value("[BLOB]");
} else {
String message = String.format("Unhandled column type <%s>. Defaulting to String", rs.getMetaData().getColumnTypeName(columnIndex));
log.warn(message);
columnBuilder.value(rs.getString(columnIndex));
}
columns.add(columnBuilder.build());

@ -74,6 +74,9 @@ public class Main {
private static void closeConnection(FrogConnection conn) {
if (conn != null) {
try {
conn.rollback();
} catch (SQLException e) {}
try {
conn.close();
} catch (SQLException e) {

Loading…
Cancel
Save