1 package net.jaekl.squelch.stmt;
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.sql.Connection;
6 import java.sql.PreparedStatement;
7 import java.sql.ResultSet;
8 import java.sql.SQLException;
9 import java.util.Locale;
11 import net.jaekl.squelch.db.DbDriver;
13 public class Select extends Query {
16 public boolean handles(String line) {
21 String s = line.trim().toUpperCase(Locale.CANADA);
22 return (s.startsWith("SELECT "));
26 public int exec(DbDriver driver, Connection conn, PrintWriter pw, String line) throws IOException, SQLException
30 // If there's a ';' on the end of this line, remove it.
31 String trimmed = line.trim();
32 if (trimmed.endsWith(";")) {
33 trimmed = trimmed.substring(0, trimmed.length() - 1);
36 try (PreparedStatement ps = conn.prepareStatement(trimmed))
38 try (ResultSet rs = ps.executeQuery())
40 rowCount = printFormatted(pw, rs);
46 private int printFormatted(PrintWriter pw, ResultSet rs) throws IOException, SQLException
48 TabularResultSet trs = new TabularResultSet(rs);
49 // TODO: StringTable i18n
50 int rowCount = trs.printTable(pw, "No rows returned.");