yay*_*zis 0 java sql sqlite jdbc prepared-statement
我正在尝试IsSELECTED
使用preparedStatements 从表中选择一条记录.我的表有3个字段(日期(DATETIME),早上(BOOL),中午(BOOL),夜晚(BOOL))和一个带有这些值的记录(2013-12-12,0,0,0).我的方法尝试选择具有给定日期的记录.
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!");
}
Run Code Online (Sandbox Code Playgroud)
没有任何反应.我把一些System.out.println
看到我有问题的地方,我得到了这个
flag1
flag2
Run Code Online (Sandbox Code Playgroud)
让我们假设它与任何记录都不匹配(但我看到我的表中有这条记录,无论如何)为什么flag3
不打印?
你并不需要包括'
各地?
,仅使用date = ?
.
还使用:
ResultSet rs = stm.executeQuery();
Run Code Online (Sandbox Code Playgroud)
代替
ResultSet rs = stm.executeQuery(sq);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
82 次 |
最近记录: |