java - 即使在 sql Developer 中启动相同的命令有效,为什么 resultSet next 不会从我的 Oracle SQL 数据库返回任何值?

标签 java oracle jdbc

我试图从数据库中获取值,以便我可以在 while 循环内检查它们,但 rsRoles.next() 即使在发生任何事情之前也会返回 false。

这是我的 table :

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 循环。

可能是什么问题?

最佳答案

这不起作用的原因是该表很忙。因此,我无法通过代码输入数据,也无法看到数据库中的数据(因为它没有提交,即使它说它已提交。

我遇到的解决方案是,一旦我放弃,我突然从 IDE 和数据库收到大约 10 条弹出消息,说连接已停止,所以我猜超时起作用了。

关于java - 即使在 sql Developer 中启动相同的命令有效,为什么 resultSet next 不会从我的 Oracle SQL 数据库返回任何值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56008599/

相关文章:

java - ResultSetImpl.checkColumnBounds 或 ResultSetImpl.getStringInternal 中偶尔出现 NullPointerException

java - 如何在 NetBeans GUI Builder 中实现所见即所得?

java - 如何用Java模拟$.ajax数组POST请求

oracle - ORA-06508 : PL/SQL: could not find program unit being called

oracle - 包规范中的 NVARCHAR2 常量

java - 使用 jconn3.jar 在 java 代码中使用 Sybase LOAD TABLE USING CLIENT FILE 失败

java - Class.forName(JDBC_DRIVER);当代码相同时,仅在我的 2 个程序中的 1 个中工作。为什么?

java - Buffer 与 Unsafe - 在 JVM 之外

java - Java 中单独的 { code } 是做什么用的?

oracle - 在自动构建环境中进行 PL/SQL 预编译和代码质量检查?