我的代碼工作正常,但我得到這個例外了很多,這是造成一點點的滯後......我懷疑這部分產生的異常獲取值java.sql.SQLException:不允許操作的ResultSet關閉
try {
try {
rs = dbConnection.getStatement().executeQuery("SELECT * FROM healthgym.member WHERE member_id = " + id);
rs.next();
} catch (SQLException ex) {
Logger.getLogger(Controller.class.getName()).log(Level.SEVERE, null, ex);
}
m.setMember_id(rs.getInt("member_id"));
m.setRec_id(rs.getInt("rec_id"));
m.setTrainer_id(rs.getInt("trainer_id"));
m.setFname(rs.getString("fname"));
m.setLname(rs.getString("lname"));
m.setMname(rs.getString("mname"));
m.setEmail(rs.getString("email"));
m.setPhoneNo(rs.getInt("phoneno"));
m.setAge(rs.getInt("age"));............
我稍後使用m對象來填充一些文本字段
編輯1:我仍然得到那個異常......這是什麼發生......我在Jtable中選擇一行,然後按編輯按鈕拋出異常,但它工作正常 這裏是所謂的當我按編輯對接在
private void editButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int id = ((Number) model.getValueAt(jTable1.getSelectedRow(), 0)).intValue() ;
System.out.println(id);
m = new Member();
c.getMember(m,id);
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new EditMember(c,model,m).setVisible(true);
}
});
}
而且EditMember是一個GUI下面是它的構造..
public class EditMember extends javax.swing.JFrame {
/** Creates new form EditMember */
public EditMember(Controller c, ResultSetTableModel model , Member m) {
initComponents();
this.c = c;
this.model = model ;
this.m = m ;
memberID.setText(Integer.toString(m.getMember_id()));
recID.setText(Integer.toString(m.getRec_id()));
trainerID.setText(Integer.toString(m.getTrainer_id()));
fName.setText(m.getFname());
lName.setText(m.getLname());.......
編輯2:
那; S在異常情況發生:
public Object getValueAt(int row, int column)
throws IllegalStateException
{
// ensure database connection is available
if (!dbConnection.isConnectedToDatabase())
throw new IllegalStateException("Not Connected to Database");
// obtain a value at specified ResultSet row and column
try
{
resultSet.absolute(row + 1);
return resultSet.getObject(column + 1);
} // end try
catch (SQLException sqlException)
{
System.out.println("Exception from here dude");
sqlException.printStackTrace();
} // end catch
我猜問題是因爲我使用了之前用來構造JTable的結果集。
你從哪裏得到例外? ResultSet在哪裏關閉? rs是在哪裏申報的?它是否在線程之間共享(壞主意)? – 2011-02-12 10:24:50
我指定了哪裏...... rs在具有getMember方法的類中聲明。不,它不共享。 – Ahmed 2011-02-12 10:53:57