Изменение записей в базе данных через Jtable - PullRequest
0 голосов
/ 27 февраля 2012

Я создал Jtable, используя Netbeans 7.1. В таблице создана модель по умолчанию, как показано ниже

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 способным обновлять и удалять записи ... с моделью по умолчанию. Я новичок в таблице моделей.

Ответы [ 2 ]

1 голос
/ 28 октября 2013
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 вы можете обратиться к этому документу.

Если вы хотите получить другие типы данных, такие как Float, int и т. д.Вы можете найти пример здесь .

0 голосов
/ 27 февраля 2012

вы должны создать такой оператор как

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

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

...