我一直试图了解如何使用结果集中的数据填充jtable,并且发现使用DBUtils可能是最简单的方法,但不幸的是它根本不适用于我。程序运行但jtable一如既往地保持空白。我不明白我哪里出错了。我有导入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 */
}
}
}
答案 0 :(得分:2)
我被困在同一点上, 所以我使用 “Vectors”
我们都知道在考虑Vectors的实现时使用Arraylist是更好的方法。但是当使用 jTables 时,默认情况下你有一些简单的方法来管理数据流并填入jTable将简化编码。 因此,如果您对像我这样的场景编码的经验较少,我建议使用向量。
只需输入此代码即可。
导入java.util.Vector;
要了解如何使用向量处理 ResultSet ,请参阅https://api.jquery.com/eq/