而ResultSet没有执行



我试图从两个不同的表调用两组数据在JTextArea (jtaDisplay)中显示。第一个表(emp_db)将获得员工编号、姓名和姓氏。第二个表(sec_clearance)将获得员工的安全许可级别。

该方法被放置在构造函数中,因此它将在框架启动时执行,但无论何时运行框架,它都不显示数据。没有错误消息出现,堆栈跟踪也没有显示任何错误消息。

我在方法内的各个地方放置了一个JOptionPane,以查看问题所在,并发现while(rs.next())语句没有执行,因为JOptionPane显示在while语句之外,但不在其中。

下面是我目前的代码:

try
        {
            String user = txtEmpTitle.getText();
            String encuser = encrypt(user); //encrypting employee number with AES to read in database
            String getEmpNum = "Select * from emp_db where emp_num = '" + encuser + "'";
            String getSecLevel = "select secLevel from sec_clearance where emp_num = '" + encuser + "'";
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = (Connection)
                    DriverManager.getConnection("jdbc:mysql://localhost:3306/employee_database","root","pass123");
            Statement stmt=conn.createStatement();
            Statement stmt2=conn.createStatement();
            ResultSet rs = stmt.executeQuery(getEmpNum);
            ResultSet rs2 = stmt2.executeQuery(getSecLevel);
            while(rs.next() && rs2.next())
            {
                String empNum = rs.getString("emp_num");
                String empName = rs.getString("fname");
                String empSname = rs.getString("sname");
                String empSecLevel = rs2.getString("secLevel");
                //decrypting data in database
                String decNum = EmpEditDB.decrypt(empNum);
                String decName = EmpEditDB.decrypt(empName);
                String decSname = EmpEditDB.decrypt(empSname);
                String decSecLevel = EmpEditDB.decrypt(empSecLevel);
                jtaDisplay.setText("Employee number: " + decNum + 
                        "nEmployee name: " + decName + " " + decSname + 
                        "nSecurity clearance: " + decSecLevel);
            }
        }
        catch(Exception e)
        {
            JOptionPane.showMessageDialog(this, e);
        }

我如何在while语句中获得代码来执行和显示JTextArea中的数据?

只有当你有记录时,它才会进入while循环。最好使用preparedstatement进行动态值设置。为了调试的目的,尝试打印你的查询在调试和复制查询和执行在sql工具检查是否有记录。

相关内容

  • 没有找到相关文章

最新更新