java.sql.SQLException:结果集结束后

时间:2014-08-15 05:38:28

标签: java mysql jdbc

尝试让两个组合框一起工作,但是......现在我的第一个组合框给了我错误...我试图改变代码但没有发生任何事情。

cbArea = new javax.swing.JComboBox();
cbArea.setFont(new java.awt.Font("Calibri", 1, 14)); // NOI18N
cbArea.setModel(new javax.swing.DefaultComboBoxModel());
try {
    Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/database", "user", "passwd");
    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
    ResultSet rs = stmt.executeQuery("select area_name from area");
    while (rs.next()) {
        cbArea.addItem(rs.getString("area_name"));
    }
    if (con != null)
        con.close();
    if (stmt != null)
        stmt.close();
    if (rs != null)
        rs.close();
} catch (Exception ex) {
    System.out.println(ex);
}

cbArea.addItemListener(new java.awt.event.ItemListener() {
    public void itemStateChanged(java.awt.event.ItemEvent evt) {
        cbAreaItemStateChanged(evt);
    }
});
cbArea.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
        cbAreaActionPerformed(evt);
    }
});

它给出了我的错误java.sql.SQLException:结果集结束后 怎么办?

1 个答案:

答案 0 :(得分:-1)

首先关闭结果集,然后关闭语句,最后关闭连接。订单在这里很重要。

Connection con = null;
Statement stmt = null;
ResultSet rs = null;

try{
  ....//your lohic
}catch(SQLException e){}
}finally{
   try{
      if (rs != null)
        rs.close();
      if (stmt != null) 
        stmt.close();
      if (con != null) 
        con.close();
   }catch(SQLException e){}
}