【发布时间】:2013-03-05 22:28:33
【问题描述】:
我是 Java 中 PreparedStatement 的新手,我似乎无法找到解决问题的最佳解决方案。我想查询表中是否为 NULL 或 NOT NULL 的记录。
在阅读PreparedStatement (Java Platform SE 6)时,我意识到我需要使用setNull方法,但是我没有看到设置NOT NULL的方法?
例如:
SELECT * FROM table WHERE column IS NULL
我认为我会做的是:
public void query(boolean getNull) {
String querySql = "SELECT * FROM table WHERE column IS ?";
sqlStatement = connection.prepareStatement(querySql);
if(getNull)
sqlStatement.setNull(1, Types.VARCHAR);
else
???;
}
但是我将如何执行 else 语句?没有 setNotNull 方法。我想我可以这样做:
public void query(boolean getNull) {
String querySql = "SELECT * FROM table WHERE column IS ? NULL";
sqlStatement = connection.prepareStatement(querySql);
sqlStatement.setString(1, (getNull ? "" : "NOT"));
}
但这似乎很“骇人听闻”。有没有更好的方法来做到这一点?
谢谢
【问题讨论】:
-
您能否描述一下您实际想要达到的目标(例如,提供一些示例数据和您想要获得的结果)。
标签: java sqlite jdbc null prepared-statement