怎么把mysql表格里的所有记录添加到JTable中

这是其中一部分代码:JFramef=newJFrame("显示学生信息");System.out.println(sql);DbManagerdb=newDbManage... 这是其中一部分代码:

JFrame f = new JFrame("显示学生信息");
System.out.println(sql);
DbManager db = new DbManager();
ResultSet rs = db.executeQuery(sql);
Vector<String> v = new Vector<String>();
Vector row = new Vector();
try {
while (rs.next()) {
String s = " ";
v.add(s + rs.getString("id"));
v.add(s + rs.getString("name"));
v.add(s + rs.getString("gender"));
v.add(s + rs.getString("birth"));
row.add(v);
}
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
db.close();
Vector<String> titles = new Vector<String>();
titles.add("学号");
titles.add("姓名");
titles.add("性别");
titles.add("生日");
JTable jl = new JTable(row, titles);
JScrollPane scr = new JScrollPane(jl);
f.add(scr);
f.setSize(500, 280);
f.setBackground(Color.black);
f.setLocation(390, 280);
f.setVisible(true);

运行结果如图所示,只能把第一条记录显示出来。。
展开
 我来答
longyin456
2012-12-12
知道答主
回答量:49
采纳率:100%
帮助的人:14.6万
展开全部
你的vector每次加V的时候都是加的V的引用!而你往V里面灌数据的时候每次都会把前面的数据抹掉。导致这种情况,类似丢芝麻捡西瓜那种。你可以把row.add(v)改成row.add(v.clone)试试!如果clone这方法没实现就自己写写。反正返回一个新的对象就OK了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式