Ошибка при запросе с использованием подключения к JDBC SQL-серверу

Я запрашиваю данные, используя следующий код:

tBPMDataSource = getJndiDataSource("java:/NaNaDS");
tBPMConnection = tBPMDataSource.getConnection();
tBPMStatement=tBPMConnection.createStatement();
if (tBPMDataSource!=null) 
{
    tBPMResultSet = tBPMStatement.executeQuery("select OID from ProcessInstance where serialNumber='"+ProcessSerial+"'");
    while (tBPMResultSet.next()) {
        ProcessOID=tBPMResultSet.getString(0);
        }
}

И произошла ошибка, ниже журнал ошибок

   2019-05-27 14:44:07,616 FINE  [com.microsoft.sqlserver.jdbc.SQLServerException] (default task-96) *** SQLException:com.microsoft.sqlserver.jdbc.SQLServerStatement@2b71098e com.microsoft.sqlserver.jdbc.SQLServerException: ̷ӽ 0 ӬԶ׶Χc ̷ӽ 0 ӬԶ׶Χc

Может ли кто-нибудь помочь найти код ошибки этого исключения? Я попытался выполнить запрос на сервере sql, и он работал нормально. Спасибо.

Вы уверены, что ресурс jndi существует? Вы можете опубликовать всю трассировку стека?

Ricardo 27.05.2019 09:16
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
39
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

в индексе столбца Java начинается с 1. Попробуйте изменить эту строку

tBPMResultSet.getString(1);

Не говорите «в Java», потому что начальный индекс 1 является особенностью ResultSet. Java обычно имеет индексы, начинающиеся с 0.

Seelenvirtuose 27.05.2019 09:26
Ответ принят как подходящий

В JDBC API индексы столбцов будут базовыми 1, а не базовыми 0, как вы ожидали. Я бы хотел, чтобы все методы, связанные с индексом, были базовыми 0 из соображений согласованности. Немного раздражает необходимость помнить, какие методы используют 0, а какие — 1.

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