Added better result set handing
This commit is contained in:
		@@ -10,6 +10,8 @@ import java.sql.SQLException;
 | 
				
			|||||||
import java.sql.SQLWarning;
 | 
					import java.sql.SQLWarning;
 | 
				
			||||||
import java.sql.Statement;
 | 
					import java.sql.Statement;
 | 
				
			||||||
import java.sql.Types;
 | 
					import java.sql.Types;
 | 
				
			||||||
 | 
					import java.text.DateFormat;
 | 
				
			||||||
 | 
					import java.text.SimpleDateFormat;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Vector;
 | 
					import java.util.Vector;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -66,7 +68,9 @@ public class SqlExecutor {
 | 
				
			|||||||
    Statement stmt = conn.createStatement();
 | 
					    Statement stmt = conn.createStatement();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      stmt.execute(sql.trim());
 | 
					      String cleanedSql = sql.trim();
 | 
				
			||||||
 | 
					      cleanedSql = cleanedSql.replaceAll("/$", "");
 | 
				
			||||||
 | 
					      stmt.execute(cleanedSql);
 | 
				
			||||||
      log.info("Executed");
 | 
					      log.info("Executed");
 | 
				
			||||||
    } catch (SQLException e) {
 | 
					    } catch (SQLException e) {
 | 
				
			||||||
      return Result.builder() //
 | 
					      return Result.builder() //
 | 
				
			||||||
@@ -175,7 +179,9 @@ public class SqlExecutor {
 | 
				
			|||||||
        ColumnBuilder columnBuilder = Column.builder();
 | 
					        ColumnBuilder columnBuilder = Column.builder();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        int columnType = metaData.getColumnType(columnIndex);
 | 
					        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));
 | 
					          columnBuilder.value(rs.getString(columnIndex));
 | 
				
			||||||
        } else if (columnType == Types.NUMERIC) {
 | 
					        } else if (columnType == Types.NUMERIC) {
 | 
				
			||||||
          columnBuilder.value(rs.getLong(columnIndex));
 | 
					          columnBuilder.value(rs.getLong(columnIndex));
 | 
				
			||||||
@@ -184,19 +190,17 @@ public class SqlExecutor {
 | 
				
			|||||||
        } else if (columnType == Types.TIME) {
 | 
					        } else if (columnType == Types.TIME) {
 | 
				
			||||||
          columnBuilder.value(rs.getTime(columnIndex));
 | 
					          columnBuilder.value(rs.getTime(columnIndex));
 | 
				
			||||||
        } else if (columnType == Types.TIMESTAMP) {
 | 
					        } 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) {
 | 
					        } else if (columnType == Types.CLOB) {
 | 
				
			||||||
          Clob clob = rs.getClob(columnIndex);
 | 
					          Clob clob = rs.getClob(columnIndex);
 | 
				
			||||||
          if (clob != null) {
 | 
					          columnBuilder.value(clob.getSubString(1, 100));
 | 
				
			||||||
            columnBuilder.value(clob.getSubString(1, 100));
 | 
					 | 
				
			||||||
          } else {
 | 
					 | 
				
			||||||
            columnBuilder.value(null);
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        } else if (columnType == Types.BLOB) {
 | 
					        } else if (columnType == Types.BLOB) {
 | 
				
			||||||
          columnBuilder.value("[BLOB]");
 | 
					          columnBuilder.value("[BLOB]");
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
          String message = String.format("Unhandled column type <%s>.  Defaulting to String", rs.getMetaData().getColumnTypeName(columnIndex));
 | 
					          String message = String.format("Unhandled column type <%s>.  Defaulting to String", rs.getMetaData().getColumnTypeName(columnIndex));
 | 
				
			||||||
          log.warn(message);
 | 
					          log.warn(message);
 | 
				
			||||||
 | 
					          columnBuilder.value(rs.getString(columnIndex));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        columns.add(columnBuilder.build());
 | 
					        columns.add(columnBuilder.build());
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -74,6 +74,9 @@ public class Main {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  private static void closeConnection(FrogConnection conn) {
 | 
					  private static void closeConnection(FrogConnection conn) {
 | 
				
			||||||
    if (conn != null) {
 | 
					    if (conn != null) {
 | 
				
			||||||
 | 
					      try {
 | 
				
			||||||
 | 
					        conn.rollback();
 | 
				
			||||||
 | 
					      } catch (SQLException e) {}
 | 
				
			||||||
      try {
 | 
					      try {
 | 
				
			||||||
        conn.close();
 | 
					        conn.close();
 | 
				
			||||||
      } catch (SQLException e) {
 | 
					      } catch (SQLException e) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user