这里边有点问题 private void displayResultSet(ResultSet rs)throws SQLException
{
//定位到第一条记录
boolean moreRecords=rs.next(); //此处已将指针移到了第一行
for(int i=1;i<=rsmd.getColumnCount();++i)
{
//获取记录集
do
{
rows.addElement(getNextRow(rs,rsmd));
}while(rs.next());
}
}do{
}while(rs.next())
这实际上移过了记录尾部,所以会出错
{
//定位到第一条记录
boolean moreRecords=rs.next(); //此处已将指针移到了第一行
for(int i=1;i<=rsmd.getColumnCount();++i)
{
//获取记录集
do
{
rows.addElement(getNextRow(rs,rsmd));
}while(rs.next());
}
}do{
}while(rs.next())
这实际上移过了记录尾部,所以会出错
{
//定位到第一条记录
boolean hasData=false;
//如果没有记录,则提示一条消息
Vector columnHeads=new Vector();
Vector rows=new Vector(); try
{
//获取字段的名称
ResultSetMetaData rsmd=rs.getMetaData();
for (int i=1;i<=rsmd.getColumnCount();i++){
columnHeads.addElement(rsmd.getColumnName(i));
} while(rs.next()){
rows.addElement(getNextRow(rs,rsmd));
} } catch(SQLException e){
e.printStackTrace();
} hasData=!rows.isEmpty();
if(!hasData)
{
JOptionPane.showMessageDialog(this,"结果集中无记录");
setTitle("无记录显示");
return;
} table=new JTable(rows,columnHeads);
JScrollPane scroller=new JScrollPane(table);
Container c=getContentPane();
c.setLayout(new BorderLayout());
c.remove(1);//什么意思?
c.add(scroller,BorderLayout.CENTER);
c.validate();
}