JTable没有使用DButils从结果集中填充

时间:2014-06-08 09:47:03

标签: java swing jtable resultset

我一直试图了解如何使用结果集中的数据填充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 */

 }
}
 }                              

1 个答案:

答案 0 :(得分:2)

我被困在同一点上, 所以我使用 “Vectors”

我们都知道在考虑Vectors的实现时使用Arraylist是更好的方法。但是当使用 jTables 时,默认情况下你有一些简单的方法来管理数据流并填入jTable将简化编码。 因此,如果您对像我这样的场景编码的经验较少,我建议使用向量

只需输入此代码即可。

导入java.util.Vector;

要了解如何使用向量处理 ResultSet ,请参阅https://api.jquery.com/eq/