Java jdbc проверяет, существует ли значение в таблице базы данных

Я получил часть своего ответа от Есть ли какой-либо sql-запрос для проверки наличия или отсутствия значения в таблице db

В комментарии Paraíso

Но я не могу скопировать возвращаемое значение в логическую переменную. Выдает ошибку как

SEVERE: null<br>
java.sql.SQLException: Invalid operation at current cursor position.

Мой код:

String sel = "select CASE WHEN count(1) > 0 THEN true ELSE false END from ledgerslist where ledger = 'dera'";
PreparedStatement stc=conn.prepareStatement(sel);
ResultSet rsk=stc.executeQuery(); 
Boolean cc=false; 
cc=rsk.getBoolean(1); 
conn.close(); 
System.out.println(cc); 
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
232
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Удалите символы ', чтобы получить логическое значение вместо строки:

select CASE WHEN count(1) > 0 THEN TRUE ELSE FALSE END from table where email = '[email protected]'

См. Логические литералы MySQL

The constants TRUE and FALSE evaluate to 1 and 0, respectively. The constant names can be written in any lettercase.

он показывает ту же ошибку. Мой код приведен здесь String sel = "select CASE WHEN count (1)> 0 THEN true ELSE false END from ledgerlist where ledger = 'dera'"; PreparedStatement stc = conn.prepareStatement (sel); ResultSet rsk = stc.executeQuery (); Логическое cc = false; cc = rsk.getBoolean (1); conn.close (); System.out.println (cc);

Arun B R 19.08.2018 10:40

@ArunBR Добавить if (rsk.next()) { перед getBoolean

user7294900 19.08.2018 11:00

Я использовал этот метод, и он отлично работает.

Arun B R 19.08.2018 11:13

@ArunBR, если это помогло, вы можете принять ответ

user7294900 19.08.2018 11:14

Этот ответ не решает проблему "java.sql.SQLException: недопустимая операция в текущей позиции курсора. "

Mark Rotteveel 19.08.2018 13:59

Другие вопросы по теме