【发布时间】:2014-07-29 02:01:36
【问题描述】:
我一直在尝试了解如何使用我的结果集中的数据填充 jtable,并发现使用 DBUtils 可能是最简单的方法,但不幸的是它根本不适合我。程序运行,但 jtable 仍然为空。我不明白我哪里出错了。我有 import net.proteanit.sql.DbUtils;在顶部导入并在类路径中添加 jar。这是我的代码:
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(最小完整且可验证的示例)。 2) 对代码块使用一致且符合逻辑的缩进。代码的缩进是为了帮助人们理解程序流程。
-
当我得到它的工作。显然代码没有任何问题,但 Action 事件 FocusGained 由于某种原因无法正常工作。使用按钮按下动作事件并且相同的代码起作用。奇怪。
标签: java swing jtable resultset