把从数据库中select出来的数据放到JTable里

devin_jia 2011-03-30 05:13:38
从MS SQL检索出来的数据,如:
select name,filename from sysdatabases;
怎样把这个结果放到JTable控件里面?
...全文
89 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
博亦正能量 2011-03-30
  • 打赏
  • 举报
回复
例子:
Frame类中是这样的
private Object[][] info;
private String[] names;
JTable table = new JTable(info,names);
table.setPreferredScrollableViewportSize(new Dimension(400, 50));
JScrollPane scrollPane = new JScrollPane(table);
this.getContentPane().add(scrollPane);

info 和 names是这样获取的:

public class ListSession {

private Statement stmt ;
private SessionWrap sew;
private String[] names;
private int i, j, rowNum, colNum;
private Object[][] info;
private String sqlstr;
private ResultSet res;
private ResultSetMetaData rsmd;

public ListSession(String table,String items) {
sew = new SessionWrap();
stmt=sew.getStatement();
listConnect(table,items);
}

private void listSessionClose() {
sew.connectClose();
}

private void listConnect(String table,String items) {
sqlstr = "select count(*) from "+table;
try {
res = stmt.executeQuery(sqlstr);
res.next();
rowNum = res.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
}

sqlstr = "select "+items+" from "+table;

try {
res = stmt.executeQuery(sqlstr);
rsmd = res.getMetaData();
colNum = rsmd.getColumnCount();

formatResult();
} catch (SQLException e) {
e.printStackTrace();
}
listSessionClose();
}

private void formatResult()throws SQLException {
names = new String[colNum];
for (i = 1; i <= colNum; i++)
names[i - 1] = rsmd.getColumnName(i);
info = new Object[rowNum][];
i = 0;
while (res.next()) {
info[i] = new Object[colNum];
for (j = 1; j <= colNum; j++) {
info[i][j - 1] = res.getObject(j);
}
i++;
}
}


public String[] getNames() {
return names;
}

public Object[][] getInfo() {
return info;
}



}

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧