2012-04-13 5 views
1

У меня есть Java-база данных, настроенная в NetBeans 7, связанная с ней, но мой запрос оказывается нулевым.Оператор запроса базы данных Java возвращает null

Моя база данных имеет имя Questioneer, а таблица имеет имя QNTABLE, в папке APP на вкладке служб.

Я использовал запрос

query = "select QNNAME from QNTABLE"; // (QNNAME is a field name) with the statement: 

Statement st = dbConn.createStatement(); 
ResultSet rs = st.executeQuery(query); 

с этим, но st и rs изрыта как нуль.

+0

Возможно, dbConn be null здесь – Nishant

+1

Согласно документам executeQuery() никогда не возвращает null. Вы уверены, что это null, а не пустой ResultSet? – jpstrube

+0

Вы уверены, что в QNTABLE есть данные? – Sibster

ответ

0

Проверьте переменную query. Возможно, вы используете двойной ' вместо " или один '.

3

Ваш код не будет компилироваться, так как Java использует "для строковых литералов, а не„“.

Ваша диагностика, конечно, выключен, как если st равно нулю, то последняя строка будет бросать NullPointerException.

В принципе, вам следует пересмотреть не только ваш код, но и то, как вы его приближаетесь. Выясните, действительно ли вы действительно, запустив код, который вы считаете собой, и как вы проверяете значения переменных.

Если у вас есть ins tance переменные, называемые st и rs, и они скрыты от местных переменных, называемых st и rs, что может объяснить некоторые путаницы.

+0

Я печатаю на своем телефоне, извиняюсь за неправильный символ. Я также отлаживаю код, и из окна просмотра переменных я вижу null как значение st и rs, они являются локальными в рассматриваемой функции, и именно там была моя ошибка, я проверял значение переменная, когда отладчик попал в оператор retunr, и к тому времени переменные вроде бы исчезли. – TiOLUWA

+0

@TiOLUWA: «Отъезд»? Поместите точку прерывания на строку 'createStatement' и просмотрите значения по каждой строке. Как я уже сказал, если 'rs' было null,' st.executeQuery' потерпел неудачу. Возможно, позже в коде что-то задает значения null? –