程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> jdbc-mysql的JDBC封裝類如何釋放資源?

jdbc-mysql的JDBC封裝類如何釋放資源?

編輯:編程綜合問答
mysql的JDBC封裝類如何釋放資源?

在這個類中返回出一個Resultset結果,然後在另一個類中循環出來,有什麼辦法可以在這個類中直接釋放資源?如果直接在後面加finally{...}會報錯,初學求解

public ResultSet SQL_ExecuteQuery(String sql,Object [] p)
{
Connection con=openConnection();//打開數據庫
PreparedStatement pst=null;//定義一個 執行對象
ResultSet rst=null;
try {
pst=con.prepareStatement(sql);//初始化執行對象
//循環設置參數
if(p!=null && p.length>0)
{
for (int i = 0; i < p.length; i++) {
pst.setObject((i+1), p[i]);//設置參數
}
}
rst=pst.executeQuery();
//最後執行命令 並返回結果
return rst;//執行命令
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

            return null;
        }

最佳回答:


每個資源類都有提供close方法,需要在finally中調用close()方法,保證JdbC連接使用完成後資源一定會被釋放。
上述代碼添加關閉代碼,參考:

 public ResultSet SQL_ExecuteQuery(String sql,Object [] p)
{
Connection con=openConnection();//打開數據庫
PreparedStatement pst=null;//定義一個 執行對象 
ResultSet rst=null;
try {
pst=con.prepareStatement(sql);//初始化執行對象
//循環設置參數
if(p!=null && p.length>0)
{
for (int i = 0; i < p.length; i++) {
pst.setObject((i+1), p[i]);//設置參數
}
}
rst=pst.executeQuery();
//最後執行命令 並返回結果
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
   pst.close();
   con.close();
}
           return rst;//執行命令 
        }
wojiushiwo945you
u012561176
sinat_29871853
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved