Я пытаюсь получить значения из базы данных, чтобы я мог проверить их внутри цикла while, но rsRoles.next () возвращает false даже до того, как что-либо произойдет.
Это моя таблица:
Name Null? Type
-------------------- -------- ----------
USER_ID_USER NOT NULL NUMBER(38)
ROLE_ID_ROLE NOT NULL NUMBER(38)
И это его значения:
USER_ID_USER | ROLE_ID_ROLE
-------------|-------------
3 | 1
3 | 2
Я использовал этот запрос внутри базы данных Oracle:
SELECT user_id_user, role_id_role
FROM user_roles
WHERE user_id_user=3;
Этот оператор возвращает приведенную выше таблицу, что является правильным.Хотя, когда я делаю это в своем коде Java:
Connection conn = database.getConnection();
String getRoles = "SELECT role_id_role, user_id_user\n"
+ "FROM user_roles\n"
+ "WHERE user_id_user=?";
PreparedStatement prstm = conn.prepareStatement(getRoles);
prstm.setInt(1, ManageUsersDialogController.getEditingUser().getAccountID());
ResultSet rsRoles = prstm.executeQuery();
while (rsRoles.next()) { // returns false
int role = rsRoles.getInt("role_id_role");
switch (role) {
case 1:
checkBoxAdmin.setSelected(true);
adminWasSelected = true;
break;
case 2:
checkBoxTeacher.setSelected(true);
teacherWasSelected = true;
break;
case 3:
checkBoxStudent.setSelected(true);
studentWasSelected = true;
}
, он никогда не попадает в цикл while.
В чем может быть проблема?