2013-07-09 75 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

相关问题