Не удалось получить значение из базы данных с ошибкой типа необработанного исключения SQL Exception

Я пытаюсь получить переменную роли из базы данных, я получаю сообщение об ошибке "Необработанное исключение типа SQL Exception"

static int indexValue=0;
public static int getRole(IndexBean w){
    String elid= IndexBean.getId();
           conn = ConnectionProvider.getCon();

           Statement statement = conn.createStatement();
           ResultSet resultset = statement.executeQuery("SELECT role FROM users WHERE elid = '" + elid + "'") ; 
           String role =  resultset.getString(1);
           if(role=="ADMIN"){
               indexValue = 1;
           }else if(role=="analyst"){
               indexValue = 2;
           }
           conn.close();
    return indexValue;
}

}


person Saidu    schedule 18.07.2017    source источник
comment
Не имеет отношения, но: role=="ADMIN" делает не то, что вы думаете.   -  person a_horse_with_no_name    schedule 18.07.2017


Ответы (1)


Метод executeQuery(String) интерфейса Statement имеет проверенное исключение SQLException.

В вашем фрагменте строка

ResultSet resultset = statement.executeQuery("SELECT role FROM users WHERE elid = '" + elid + "'");

имеет проверенное исключение, которое не обрабатывается. Вот почему вы получаете сообщение о необработанном исключении. Всякий раз, когда вы вызываете этот метод, вам нужно либо поместить его в блок try-catch, либо добавить throws SQLException в содержащую сигнатуру метода.

См. Java Sql API операторов здесь.

person Aritra    schedule 18.07.2017
comment
Да, выброс SQLException устранил мою проблему. Спасибо :) - person Saidu; 25.07.2017