2014-01-26 3 views
1

내 테이블에 하나의 행을 추가하려고 ...하지만 다음 코드는 각 행의 끝에 두 번 추가 ... ie. ii는 두 개의 유사한 행을 가져 오는 중입니다. 단일 행행이 두 번 추가 jtable

DefaultTableModel tb=(DefaultTableModel)tb1.getModel(); 
Class.forName("com.mysql.jdbc.Driver"); 
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/db","root",""); 
Statement stmt=con.createStatement(); 
int a=(Integer) l1.getSelectedValue(); 
System.out.println(a); 
String query="select * from student where rno ="+a+";"; 
System.out.println(query); 
ResultSet rs=stmt.executeQuery(query); 
while(rs.next()){ 
    int rno=rs.getInt("rno"); 
    String name=rs.getString("name"); 
    String sec= rs.getString("sec"); 
    tb.insertRow(0,new Object[]{name,rno,name,sec}); 
    tb1.setModel(tb); 
+0

ResultSet에 중복 데이터가 없습니까? – mdewitt

+0

새 데이터를 추가하기 전에 테이블 모델에서 기존 데이터를 제거하는 것처럼 보이지 않습니다. – MadProgrammer

답변

0

하지 루프에서, 후 루프를이 호출 을 넣어 :

tb1.setModel(tb); 
0

테이블에 모델을 설정하는 모든에서 필요 가 없습니다. 이미 DefaultTableModel을 (를) 전송 중입니다. 전송 예외가 발생하지 않으면 표에 이미 DefaultTableModel이 보관되어 있어야합니다. 따라서 필요한 것은 addRow(row) 또는 insetRow(index, row);입니다. 모델을 설정할 필요가 없습니다. 테이블은 자동으로 업데이트됩니다. DefaultTableModel

관련 문제