проверка параметров в PreparedStatement - PullRequest
0 голосов
/ 26 августа 2011

Я работаю над Java-приложением, которое использует PreparedStatement.

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 для подготовленного оператора для этого случая?

Ответы [ 2 ]

1 голос
/ 26 августа 2011

Просто проверьте это в Java.

if firstFieldValue.equals("") 

then SELECT FIELD1, FIELD2 FROM MYTABLE 

else  

SELECT FIELD1, FIELD2 FROM MYTABLE WHERE (FIELD1=? OR FIELD1='');

preparedStatementInstance.setString(1, this.firstFieldValue); 
0 голосов
/ 26 августа 2011

нет «я думаю, что это неправильно» при выполнении sql, либо это правильно, и он выполняет запрос, либо sql неправильно, и вы получаете sqlexception

Если это не удастся, вы должны предоставить форуму трассировку стека, чтобы нам не приходилось читать.

что вы имеете в виду под "пустым"? пуст как пустая строка или как ноль в БД

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...