相关疑难解决方法(0)

如何在PreparedStatement中处理(可能)空值?

声明是

SELECT * FROM tableA WHERE x = ?
Run Code Online (Sandbox Code Playgroud)

并通过java.sql.PreparedStatement'stmt'插入参数

stmt.setString(1, y); // y may be null
Run Code Online (Sandbox Code Playgroud)

如果y为null,则语句在每种情况下都不返回任何行,因为x = null它始终为false(应该是x IS NULL).一个解决方案是

SELECT * FROM tableA WHERE x = ? OR (x IS NULL AND ? IS NULL)
Run Code Online (Sandbox Code Playgroud)

但后来我必须设置两次相同的参数.有更好的解决方案吗?

谢谢!

java null prepared-statement

46
推荐指数
3
解决办法
3万
查看次数

标签 统计

java ×1

null ×1

prepared-statement ×1