import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.Locale;
-import net.jaekl.squelch.sql.Column;
-
public class Select extends Query {
@Override
}
return rowCount;
}
-
- private Column[] getColumns(ResultSetMetaData metaData)
- throws SQLException, ClassNotFoundException
- {
- int colCount = metaData.getColumnCount();
-
- Column cols[] = new Column[colCount];
- for (int idx = 1; idx <= colCount; ++idx) {
- String label = metaData.getColumnLabel(idx);
- Class<?> clazz = Class.forName(metaData.getColumnTypeName(idx));
- int width = metaData.getColumnDisplaySize(idx);
- cols[idx] = new Column(label, clazz, width);
- }
-
- return cols;
- }
-
+
private int printFormatted(PrintWriter pw, ResultSet rs) throws IOException, SQLException
{
- try {
- ResultSetMetaData metaData = rs.getMetaData();
- int rowCount = 0;
- Column[] cols = getColumns(metaData);
-
- pw.println("----------------------------------");
- for (int idx = 1; idx <= cols.length; ++idx) {
- pw.print("|" + cols[idx - 1].getLabel());
- }
- pw.println("|");
-
- while (rs.next()) {
- for (int idx = 1; idx <= cols.length; ++idx) {
- pw.print("|" + rs.getObject(idx));
- }
- pw.println("|");
- }
- pw.println("----------------------------------");
- pw.println("" + rowCount + " row(s) returned.");
-
- return rowCount;
- }
- catch (ClassNotFoundException exc) {
- throw new SQLException(exc);
- }
+ TabularResultSet trs = new TabularResultSet(rs);
+ int rowCount = trs.printTable(pw);
+ pw.flush();
+
+ return rowCount;
}
}