我想從兩個不同的表中調用兩組數據以顯示在JTextArea(jtaDisplay
)中。第一張表(emp_db
)將獲得員工編號,姓名和姓氏。第二張表(sec_clearance
)將獲得員工安全許可級別。雖然ResultSet未執行?
該方法被放置在構造函數中,所以它會在框架啓動時執行,但是每當我運行框架時它都不會顯示數據。沒有錯誤消息出現,並且堆棧跟蹤不顯示任何錯誤消息。
我在方法內的不同位置放置了一個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?
這是什麼線程運行?取決於此,使用揮杆組件顯示消息可能會或可能無法正常工作。事實上,你可能會吠叫錯誤的樹,因爲代碼可能正在執行,但是gui沒有被更新!爲什麼不使用簡單的println? – e4c5
這和.. [標籤:鞦韆]有什麼關係?是的,我知道代碼顯示給Swing組件,但這似乎與實際問題無關。另外,不要爲IDE添加標籤 - 這只是針對IDE的問題或有關IDE的問題! –
順便說一下,''jtaDisplay.setText'應該可能是'jtaDisplay.append',但是,這似乎並不是問題的根源。爲了儘快提供更好的幫助,請發佈[MCVE]或[簡短,獨立,正確的示例](http://www.sscce.org/)。 –