Я пытаюсь выбрать запись из таблицы IsSELECTED
, используя подготовленные записи. Моя таблица имеет 3 поля (дата (DATETIME), утро (BOOL), полдень (BOOL), ночь (BOOL)) и одна запись с указанными значениями (2013-12-12, 0, 0, 0). Мой метод пытается выбрать запись с указанной датой.Выполнение выбора PreparedStatement не выполняется
public void getTodayInfo(HttpSession session, String date)
throws ClassNotFoundException, SQLException{
System.out.println("flag1");
String sq = "SELECT date, morning, noon, night FROM IsSELECTED WHERE date='?'";
try {
System.out.println("flag2");
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection(path);
stm = c.prepareStatement(sq);
stm.setString(1, date);
System.out.println("flag3");
ResultSet rs = stm.executeQuery(sq);
while (rs.next()) {
System.out.println("flag4");
Shift s = new Shift(rs.getString(date), rs.getBoolean("morning"), rs.getBoolean("noon"), rs.getBoolean("night"));
System.out.println("flag5" + s.toString());
session.setAttribute("shiftsToday", s);
}
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
if (stm != null)
stm.close();
if (c != null)
c.close();
}
System.out.println("Goodbye!");
}
и ничего не происходит. Я положил некоторые System.out.println
, чтобы увидеть, где у меня есть проблема, и я получаю эту
flag1
flag2
Давайте предположим, что он не совпадает с какой-либо записи (но я вижу свою таблицу с этой записью, в любом случае), почему flag3
ISN» t напечатано?
Измените 'SQLException' на' Exception' и посмотрите, что произойдет. Уверен, что исключение не выбрасывается? Выходит ли 'Goodbye'? – Antoniossss
date = trunc (?); Также вы должны использовать rs.getDate, если ваш столбец имеет тип Date. – drgPP
Я предполагаю, что это должно быть 'getString (" date ")' –