2013-07-27 44 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張貼上面..你可以看到它。但它仍然沒有工作 –