2013-12-07 3 views
4

Im разрабатывает приложение для Java-приложений для моего назначения в колледже. Я столкнулся с проблемой, пока загружаю значения в Jtable. Я использовал следующий код для загрузки значений. Он делает дубликаты записей. Не могли бы вы помочь мне избавиться от этой проблемы?Значения Jtable, дублирующие последнее значение

private void LoadSupplierTable() { 
    clearTable((javax.swing.table.DefaultTableModel) tblSupp.getModel()); 
    javax.swing.table.DefaultTableModel dtSupp = (javax.swing.table.DefaultTableModel) tblSupp.getModel(); 
    Vector ver = new Vector(); 
    try { 
     ResultSet resO = null; 
     String sqo = "select id,name from supplier"; 
     Connection coo = DataBaseConnection.getDbConnection(); 
     PreparedStatement pso = coo.prepareStatement(sqo); 
     resO = pso.executeQuery(); 
     while (resO.next()) { 

      ver.add(resO.getInt("id")); 
      ver.add(resO.getString("name")); 
      dtSupp.addRow(ver); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

Перейти в вашу базу данных и запросов то же самое и посмотреть, что получится. –

+0

Также вы должны закрыть соединение. – 4J41

ответ

1

Вы должны объявить вектор внутри цикла While ... просто скопировать вставьте следующий код

private void LoadSupplierTable() { 
    clearTable((javax.swing.table.DefaultTableModel) tblSupp.getModel()); 
    javax.swing.table.DefaultTableModel dtSupp = (javax.swing.table.DefaultTableModel) tblSupp.getModel(); 

    try { 
     ResultSet resO = null; 
     String sqo = "select id,name from supplier"; 
     Connection coo = DataBaseConnection.getDbConnection(); 
     PreparedStatement pso = coo.prepareStatement(sqo); 
     resO = pso.executeQuery(); 
     while (resO.next()) { 
      Vector ver = new Vector(); 
      ver.add(resO.getInt("id")); 
      ver.add(resO.getString("name")); 
      dtSupp.addRow(ver); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
Смежные вопросы