2012-02-27 2 views
0

Я создал Jtable, используя Netbeans 7.1. таблица создана модель по умолчанию, как показано нижеИзменение записей в базе данных через Jtable

table.setModel(new javax.swing.table.DefaultTableModel(
     new Object [][] { 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null} 
     }, 
     new String [] { 
      "Title 1", "Title 2", "Title 3", "Title 4" 
     } 
    )); 

Я также добавил следующие строки кода для заполнения данных из базы данных Sqlite.

public void tabl() 
{ 
    try 
    { 
    stmt=conn.createStatement(); 
    String sql2="SELECT * FROM students"; 
    rs=stmt.executeQuery(sql2); 
    int n=0; 
    while(rs.next()) 
    { 

     table.setValueAt(rs.getString(1),n,0); 
     table.setValueAt(rs.getString(2),n,1); 
     table.setValueAt(rs.getString(3),n,2); 
     table.setValueAt(rs.getString(4),n,3); 
     n++; 
    } 
    } 
    catch(SQLException e) 
    { 

    } 
} 

Моя викторина Как я теперь сделать JTable возможность для обновления и удаления записей ... с model.I по умолчанию новичок в таблицы моделей.

+1

http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data –

+0

@Xcoder: напишите 'rs.getXXX (" column_title ")' в коде. он удалит дальнейшие ошибки из-за таблиц базы данных или манипуляций с просмотром. –

ответ

0

вы должны создать заявление, как этот

conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, 
        ResultSet.CONCUR_UPDATABLE); 

, а также отметить, что выбор * FROM таблицы; всегда возвращает только результат. вместо этого запрос должен быть выбран column1, columnn FROM table;

+0

@peter Как обновить изменения с помощью кнопки, которую я только что создал? – Xcoder

1
DefaultTableModel dmReset = (DefaultTableModel) table.getModel(); 
try { 
    stmt=conn.createStatement(); 
    String sql2="SELECT * FROM students"; 
    rs=stmt.executeQuery(sql2); 
    while (rs.next()) { 
      Vector v = new Vector(); 
      v.add(rs.getString(1)); 
      v.add(rs.getString(2)); 
      v.add(rs.getString(3)); 
      v.add(rs.getString(4)); 
      dmReset.addRow(v); 
      } 
    } catch (Exception e) { 
      System.err.println(e.toString()); 
    } 

Примечание: Используйте заголовки столбцов в полном rs.getXXX() методов вместо индексов столбцов. для получения более подробной информации о TableModel вы можете обратиться this document.

Если вы хотите получить другие типы данных, такие как Float, Int и т.д. ... переключатель случай может быть добавлен с этим, вы можете найти пример here.