PreparedStatement中的java参数验证
我正在开发一个利用PreparedStatement的java应用程序
SELECT FIELD1, FIELD2 FROM MYTABLE WHERE (FIELD1='firstFieldValue' OR FIELD1='' or 'firstFieldValue'='');
firstFieldValue是一个参数。并且有必要在SQL中检查其值是否为空
我用以下参数化SQL创建了一个准备好的语句:
SELECT FIELD1, FIELD2 FROM MYTABLE WHERE (FIELD1=? OR FIELD1='' or ?='');
我设定的值如下:
preparedStatementInstance.setString(1, this.firstFieldValue);
preparedStatementInstance.setString(2, this.firstFieldValue);
这种方式行不通。执行失败
我认为准备好的SQL语句是错误的
如何修复本例中的SQL for prepared语句
# 1 楼答案
在执行sql时没有“我认为它是错误的”,要么它是正确的,它执行查询,要么sql是错误的,你会得到一个sqlexception
如果失败了,你应该向论坛提供stacktrace,这样我们就不必读了
“空”是什么意思? 在数据库中作为空字符串或null为空