2013-07-09 4 views
-2

Я хочу извлечь данные из таблиц базы данных и показать их в таблице из JTable.
Вот какой код я хочу добавить данные из базы данных в массив dataValues [] [] в этом i хранить значения в 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 в 2D-массиве, чтобы угодить любезно мне помочь – user2508209

ответ

3
  • чтения Oracle Аркадам How to use Tables
  • сброса DefaultTableModel к нулю, до того, как новые объекты из JDBC выполняются, добавлены в DefaultTableModel, использовать (есть несколько еще методы, вы можете, начиная с) модель .setRowCount (0);
  • создать DefaultTableModel, JTable, как локальные переменные, re_use этих переменных, не создавать новую эти объекты, то необходимо удалить uselles объекты и добавлять новые объекты в Качели GUI
  • переопределение getColumnClass, его очень важно для JTable: посмотреть, чтобы знать типы данных, хранящихся в DefaultTableModel
  • создать (я предположил, что не существует другая структура колонки, если да, то Multiplay эти переменные) ColumnModel в качестве локальной переменной
  • не изобретать колесо, поиск ResultSetTableModel , или лучше ТаблицаFromDatabase
+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

Смежные вопросы