我一直在試圖弄清楚如何用我的結果集中的數據填充jtable,並發現使用DBUtils可能是最簡單的方法,但不幸的是它不適合我在所有。該程序運行,但Jtable仍然是空的。我不明白我在哪裏出錯了。我有導入net.proteanit.sql.DbUtils;在頂部導入,並將jar添加到類路徑中。這裏是我的代碼:JTable沒有從結果集中用DButils填充
private void jPanel3FocusGained(java.awt.event.FocusEvent evt) {
// TODO add your handling code here:
// JDBC driver name and database URL
String JDBC_DRIVER = "com.mysql.jdbc.Driver";
String DB_URL = "jdbc:mysql://localhost/new";
// Database credentials
String USER = "root";
String PASS = "";
Connection conn = null;
PreparedStatement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
//STEP 4: Execute a query
System.out.println("Creating statement...");
String sql;
sql = "SELECT * FROM user";
stmt = conn.prepareStatement(sql);
//Bind values into the parameters.
ResultSet rs = stmt.executeQuery();
jTable1.setModel(DbUtils.resultSetToTableModel(rs));
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}
catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}
finally {
try {
stmt.close();
conn.close();
}
catch (SQLException e) { /* ignore */
}
try {
conn.close();
} catch (SQLException e) { /* ignore */
}
}
}
1)爲了更好地幫助越早,張貼[MCVE(http://stackoverflow.com/help/mcve)(最小完整和可驗證示例)。 2)對代碼塊使用一致的邏輯縮進。代碼的縮進旨在幫助人們理解程序流程。 –
當我讓它工作。顯然,代碼沒有問題,但ActionGained事件由於某種原因不起作用。使用按鈕按下操作事件和相同的代碼工作。奇怪。 – Ghias