2013-07-27 40 views
-1

我正在回顾一个oracle表并在jtable中显示它。这是我第一次使用jtable,所以我不知道任何东西。我做了我的研究,并尝试了不同的方法,但我适当underatsnd适当.. 它不显示在jtable中的数据。从Oracle数据库显示JTable中的数据

 DefaultTableModel model = new DefaultTableModel(); 
    jTable1 = new javax.swing.JTable(model); 

如果(evt.getSource()==将jButton2){

 Connection conn=null; 
     PreparedStatement ps=null; 
     Vector<Vector<Object>> data = new Vector<Vector<Object>>(); 
Vector columns = new Vector(); 
    Statement stmt=null; 

     try 
     { 
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
      conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","hr"); 
     } 
     catch(ClassNotFoundException | SQLException e) 
     { 

      System.out.println(e); 
     } 
     try{ 
      ps=conn.prepareStatement("select * from \"SYSTEM\".NEWUSER"); 

     ResultSet rs = ps.executeQuery(); 
     ResultSetMetaData md = rs.getMetaData(); 
     Vector<String> columnNames = new Vector<String>(); 
     int columnCount = md.getColumnCount(); 
     for (int i = 1; i <= columnCount; i++) 
     { 
      columnNames.addElement(md.getColumnName(i)); 
     } 
     columns.add(columnNames); 
     while (rs.next()) 
     { 
      Vector<Object> row = new Vector<Object>(); 

      for (int i = 1; i <=columnCount; i++) 
      { 
       row.addElement(rs.getObject(i)); 
      } 

      data.add(row); 
      //System.out.println("watever"); 
     } 

     rs.close(); 
     ps.close(); 
     conn.close(); 

      } 
        catch(SQLException | HeadlessException e) 
     { 

      System.out.println("the error is"+e); 
     } 
     JTable jTable1 = new JTable(data, columns); 





} 

我提出的行中的变化,但它仍然没有示出d数据..

回答

3
DefaultTableModel model = new DefaultTableModel(); 

的代码看起来很合理,除了模型不包含任何列。添加一行数据时,列不会自动创建。

你的代码应该是这样的:

String[] columnNames = {"Column1", "Column2", "Column3", "Column4", "Column5"}; 
DefaultTableModel model = new DefaultTableModel(columnNames, 0); 

然后,当您添加的行,你应该看到数据的5列。

或者为了更好的解决方案,将创建基于SQL的列名称,请参阅代码Table From Database

+0

我editted d代码nd张贴上面..你可以看到它。但它仍然没有工作 –