2013-07-09 70 views
-2

我想從數據庫表中提取數據並將其顯示在JTable中的表中。
這裏是一些代碼,我想添加數據庫數據庫中的數據dataValues [] [] 在這裏我存儲值在dataValues [][]靜態,但我想從數據庫表中存儲dataValues[][]值。將數據庫中的表值提取並存儲到數據值

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 

Connection connection = DriverManager.getConnection(url, username, password); 
Statement statement = connection.createStatement(); 
String query = "select command_name, omc_name, to_module, start_time, end_time, status, priority, cmd_id from sync_task_table"; 

ResultSet resultset = statement.executeQuery(query); 

dm=new DefaultTableModel(); 

String columnNames[] = { "Column 1", "Column 2", "Column 3" }; 

// Create some data 
String dataValues[][] = { 
    { "12", "234", "67" }, 
    { "-123", "43", "853" }, 
    { "93", "89.2", "109" }, 
    { "279", "9033", "3092" } 
}; 

// Create a new table instance 
table = new JTable(dataValues, columnNames); 

// Add the table to a scrolling pane 
scrollPane = new JScrollPane(table); 
+0

不能看到有一些關於從JDBC獲得的價值,並投入到爲TableModel – mKorbel

+1

到底是什麼問題了嗎? –

+0

是啊我想獲取值和存儲在dataValues [] [] ..但我不知道我在dataValues [] [] becoz中添加值我不是gud二維數組請幫助我 – user2508209

回答

3
  • 閱讀甲骨文教程How to use Tables
  • 復位的DefaultTableModel爲null,執行從JDBC新對象之前,加入的DefaultTableModel,使用(有幾個其他方法,你可以用開始)模型.setRowCount(0);
  • 創建的DefaultTableModel,JTable中的局部變量,re_use這些變量,不創建一個新的這些對象,則需要去除uselles對象並添加一個新的對象來Swing GUI的
  • 重寫getColumnClass,其很重要JTable中查看了解存儲的DefaultTableModel數據類型
  • 創建(我認爲沒有另一列結構,如果是,那麼這個多重變量)ColumnModel作爲局部變量
  • 不推倒重來,搜索ResultSetTableModel ,或更好TableFromDatabase
+0

感謝您的指導:) – user2508209

3

首先您應該以首選的JDBC方式註冊驅動程序

Class.forName("oracle.jdbc.driver.OracleDriver"); 
// instead of 
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 

現在回答您的問題。

通過初始化dataValues:

String columnNames[] = { "Column 1", "Column 2", "Column 3" }; 
List<Object[]> dataValueList = new ArrayList(); 

while(resultset.next()){ 
    Object[] nextRow = new Object[columnNames.length]; 
    for(int col = 0; col < columnNames.length; col++){ 
     String colName = columnNames[col] 
     Object colValue = resultset.getObject(colName); 
     // do type conversion here - e.g. sql type to string 
     nextRow[col] = colValue; 
    } 
    dataValueList.add(nextRow); 
} 

Object[][] dataValues = (Object[][]) dataValueList.toArray(new Object[dataValueList 
      .size()][columnNames.length]); 
+0

這裏是什麼objects.size()??? – user2508209

相關問題