yay*_*zis 1 java jdbc prepared-statement
我使用预准备语句来读取/写入我的数据库(SQLite)中的数据.在我的表中INVENTORY,有一些记录null在列中有值paleta(列VARCHAR在表中定义).我想选择这些记录,我试过:
sq = "SELECT * FROM INVENTORY WHERE paleta = ? AND product = ? AND lot = ?";
//...
stm = c.prepareStatement(sq);
stm.setNull(1, java.sql.Types.VARCHAR);
stm.setString(2, "theIdOftheProduct");
stm.setString(3, "theLotOftheProduct");
ResultSet rs = stm.executeQuery();
Run Code Online (Sandbox Code Playgroud)
上面的查询没有返回任何东西..我删除了paleta = ?,我得到了我想要的记录..如何SELECT * FROM INVENTORY WHERE paleta is null etc..使用查询参数定义查询?
你要做的就是写作SELECT * FROM INVENTORY WHERE paleta = NULL ...,这是行不通的.
由于您实际上是在搜索列中具有常量值的paleta行(恰好是这样NULL),因此可以消除第一个查询参数并显式检查null:
sq = "SELECT * FROM INVENTORY WHERE paleta IS NULL AND product = ? AND lot = ?";
stm = c.prepareStatement(sq);
stm.setString(1, "theIdOftheProduct");
stm.setString(2, "theLotOftheProduct");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |