在這個類中返回出一個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;//執行命令
}