数组是定长的,建议转化为list列表;
有一个stu实体类,属性你应该能看懂吧,那看不懂继续追问
public ArrayList<Student> queryAll() {
String sql = "select * from stu_manger_sys";
selectAll =true;
this.setApp(sql);
return list;
}
public void setApp(String sql){
Statement stmt = null;
ResultSet rs = null;
StuNum =0;
list = new ArrayList<>();
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next()){
stu = new Student();
stu.setId(rs.getInt(1));
stu.setName(rs.getString(2));
stu.setAge(rs.getInt(3));
stu.setDate(rs.getDate(4));
stu.setHome(rs.getString(5));
stu.setPhoneNumber(rs.getString(6));
StuNum++;
if(selectAll==true) {
list.add(stu);
}
}
} catch (SQLException ex) {
}
追问我要做的是从mysql里面查询的结果显示到jtable里面,只想到用数组做,不知道还有什么办法
追答为什么想到只有数组?你给我说下你的想法,你用数组的具体原因
喔喔,你可以先保存在list里面,然后在把值赋给数组不就可以了?而且能获得到list的长度
追问list怎么转化成数组,百度一下看不太明白
追答不是直接转换,list可以回去到他的长度,这个长度可以new一个数组;然后foreach遍历list,给每一数组赋值就OK了;。。。话说你用给数组赋值。因为你完全可以在遍历list的循环里面new新的jtable,然后给他赋值就行;你给定的jtable数量肯定有限吧?下面是我做的代码,(就是把数据库值传递给jtable你可以借鉴下)
JLabel [][] jls = new JLabel[StuNum][2];
JButton [] jbs = new JButton[StuNum];
int x = 0;
int y = 80 ;
for(final Student stu : list){
});
jls[i][0] = new JLabel();
jls[i][0].setBounds(x+=100, y, 80, 25);
jls[i][1] = new JLabel();
jls[i][1].setBounds(x+=150, y, 80, 25);
jls[i][0].setText(stu.getId()+"");
jls[i][1].setText(stu.getName());
jp.add(jls[i][0]);
jp.add(jls[i][1]);
jp.add(jbs[i]);
i++;
y+=50;
}
}
本回答被网友采纳