0
我正在學習MySQL數據庫,我不能理解一個概念。假設在同一個類中有兩個方法,如下所示。現在,我必須使用Connection connect = dbConnection.getDBConnection();每種方法還是有不同的方法來聲明一個連接並在多個方法?:MYSQL一個類的一個連接
private void setUpdateButton(ActionEvent event) {
try{
Connection connect = dbConnection.getDBConnection();
Statement stmt = connect.createStatement();
if(txtID.getText().trim().isEmpty()||txtFirstName.getText().trim().isEmpty() || txtSecondName.getText().trim().isEmpty() ||
txtGender.getText().trim().isEmpty() || txtAge.getText().trim().isEmpty() || txtHomeAddress.getText().trim().isEmpty() || txtPhoneNumber.getText().trim().isEmpty()) {
showAlert("Invalid Input!", "All fields need to be populated before updating.");
}else {
String sqlQuery ="update student_information set Age ='"+Integer.parseInt(txtAge.getText())+"',Name ='"+txtFirstName.getText()+"',Surename='"+txtSecondName.getText()
+"',Gender='"+txtGender.getText()+"',Address='"+txtHomeAddress.getText()+"',PhoneNumber='"+txtPhoneNumber.getText()+"'where ID="+Integer.parseInt(txtID.getText());
stmt.executeLargeUpdate(sqlQuery);
setTxtArea();
showConfAlert("Update Completed!", "Record has been updated!");
您可以使** connect **對象爲全局類型,但您需要意識到數據庫連接將保持打開狀態,直到您使用** connect.close()**關閉它爲止。你當然也需要從你的方法中刪除所有的connect.close()。您應該總是**在完成後關閉數據庫連接。我個人喜歡你現在這樣做的方式,但又一次......這一切都取決於你的行爲。 – DevilsHnd
這是否意味着使用Connection connect = dbConnection.getDBConnection();在每一種連接方法中都是正確的做法?對我來說這似乎很奇怪,我需要在每種方法中創建一個新的連接。感謝您的回覆 – helloumarian
在我看來....是的。連接應該在finally {}塊中關閉(以及ResultSet和Statement對象)以釋放數據庫資源。這完全取決於你在數據庫會話期間所做的事情。 – DevilsHnd