我正在尝试在我的表中添加一行......但是下面的代码在每行的末尾添加了两行...即,我得到两个相似的行而不是一行
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 :(得分:0)
在循环后调用,而不是循环:
tb1.setModel(tb);
答案 1 :(得分:0)
根本不需要 将模型设置为表格。您已经投射DefaultTableModel
,除非您获得投射例外,否则该表应该已经存在DefaultTableModel
。所有您需要的只是addRow(row)
或insetRow(index, row);
。无需设置模型,表格将通过其DefaultTableModel