Java while(rs.next()) 只有显示最后一行 怎么改可以显示全部啊

ResultSet rs = stmt.executeQuery(sql);
Object columnNames[]={"ID","姓名","性别","邮箱","职务","部门"};
int id1 = 0;
String username1 = null;
String sex1 = null;
String email1 = null;
String dept1 = null;
String position1 = null;
while(rs.next()){
String id2 = rs.getString("UID");
id1= Integer.parseInt(id2);
username1 = rs.getString("UNAME");
sex1 = rs.getString("USEX");
email1 = rs.getString("UEMAIL");
dept1 = rs.getString("UDEPT");
position1 = rs.getString("UPOSITION");
}
Object rowData[][] = {{id1,username1,sex1,email1,position1,dept1}};
JTable table = new JTable(rowData, columnNames);
JScrollPane jsp=new JScrollPane(table);
table.setPreferredScrollableViewportSize(new Dimension(450, 300));
getContentPane().add(jsp, BorderLayout.CENTER);
if(rs!=null){
rs.close();
}
if(stmt!=null){
stmt.close();
}
if(con != null){
con.close();
}

} catch (Exception e1) {
// TODO: handle exception
e1.printStackTrace();
}
rs.next不是说显示最后一行,这句代码的含义是游标下移.不知道你所说的显示孙销全部是什么意思.
如果是兆郑获取全部记录族凯颂的话.应该用循环获取.
你这个肯定是只有一行的数据,因为没执简卖行一次桐咐悔,你的username1,sex1等变量都会重新赋值一次,你需要定义一个集合来放查询出来的数据,最好把那些变量封装到POJO中,还有,局正ResultSet可以直接获取字段的int值,具体方法我忘了,应该是类似rs.getInteger(x)这样的,x为你的列名或列下标

你不停的给它赋值有用吗?

你应该要把你唯答旅要用来放置的代码也放进去,

    //...
    int id1 = 0;
    String username1 = null;
    String sex1 = null;
    String email1 = null;
    String dept1 = null;
    String position1 = null;
    Object rowData[][] = {{id1,username1,sex1,email1,position1,dept1}};
    int i=0;
while(rs.next()){
    String id2 = rs.getString("UID");
    id1= Integer.parseInt(id2);
    username1 = rs.getString("UNAME");
   举粗 sex1 = rs.getString("USEX");
    email1 = rs.getString("UEMAIL");
    dept1 = rs.getString("UDEPT");
    position1 = rs.getString("UPOSITION");
    rowData[i]={id1,username1,sex1,email1,position1,dept1};
}
//...

这样。指凳


这是差裂耐个循环,从第一行到最后一行都显示,只显示最后一行是源竖不是你的sql 只查出来一行。
我看了你贴的,虚春这个简单,在while里加上i++试试。
while是条件判断句,while后面条件就好了,要不一直循环,一直被覆盖,所以只显示最后一个的了