2015-08-14 25 views
0

我有一個函數來插入使用JDBC的數據,但它只是一個記錄怎麼可以插入多條記錄dynamicaly在Java中插入多個記錄「不操作允許後連接關閉」

public void insertInfo() throws Exception{ 
    try{ 
     int codeNat = getNat(); 

     String query = "INSERT INTO info (id,name,code_nat) VALUES (?,?,?)"; 

     stat = cnx.prepareStatement(query); 
     stat.setString(1, txtId.getText()); 
     stat.setString(2, txtName.getText()); 
     stat.setInt(3, codeNat); 

     stat.execute(); 
     Update_table(); 

    }catch(SQLException ex){ 
     JOptionPane.showMessageDialog(null,ex); 
    } 
    finally{ 
     try{ 
      stat.close(); 
      cnx.close(); 
     }catch(Exception e){ 

     } 
    } 
} 

例外,我不得不「連接關閉後不允許任何操作。「

+2

請發佈您的代碼,包括完整的錯誤和堆棧跟蹤。 – BackSlash

+0

您的資源'stat,cnx'在第一次插入後關閉。 – Rustam

+0

但我必須關閉否? –

回答

0

您正在關閉您的連接(cnx)在您的方法的最後。這將在您第一次插入時關閉連接(無論是否失敗或通過),然後在您下次插入時連接仍將關閉。如果您願意,可以嘗試將連接開口移動到此方法中,但打開/關閉連接可能很昂貴,也可能將此方法之外的關閉/打開移動。在我們看到更多你正在編寫的代碼之前,真的很難說。

+0

有人告訴我添加一個批處理,但我不知道它是什麼,我已經刪除了cnx.close()它的工作,謝謝 –

+0

謹慎,但你不想打開數據庫連接。在完成插入數據後,您需要關閉該連接 – beartech1

+0

好的,我會在關閉窗口的末端執行此操作 –

相關問題