已编辑 - 在回复后添加了更多代码(仍然不起作用)
我想通过使用变量的Where子句来查询sqlite,但是我无法让它工作。
我设置了一个变量并传递它,但是,只有硬编码才有效......
这有效:
Penut 是 docName 列中的记录之一。
rs = stat.executeQuery("SELECT * FROM " + TABLE_NAME + " WHERE docName = 'Penut'");
但是,这不起作用:
Connection conn = DriverManager.getConnection("jdbc:sqlite:dufuss.db");
Statement stat = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
myInput ="Penut";
String sql = "SELECT * FROM " + TABLE_NAME + " WHERE docName = ?";
conn.prepareStatement(sql).setString(1, myInput);
rs = stat.executeQuery(sql);
那么,如何让变量 myInput 发挥作用?
最佳答案
试试这个
String sql = "SELECT * FROM " + TABLE_NAME + " WHERE docName = ?";
PreparedStatement preparedStatement = conn.prepareStatement(sql);
preparedStatement.setString(1, myInput);
ResultSet rs = preparedStatement.executeQuery();
while (rs.next()) {
// iterate through results
}
关于java - sqlite - 如何在Where子句中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17138178/