提高數據庫操作的可靠性
發表于:2007-07-01來源:作者:點擊數:
標簽:
Java 中的 數據庫 操作是比較頻繁的,很多人在處理數據庫操作時往往拿不準,只能保證程序正常運行下沒有問題,但是很多都沒有釋放資源或者沒有正確的釋放資源,等到有問題又不知道怎么回事!這里給出一個通過JDBC操作數據庫的簡單例子, 希望有一定的參考價
Java中的
數據庫操作是比較頻繁的,很多人在處理數據庫操作時往往拿不準,只能保證程序正常運行下沒有問題,但是很多都沒有釋放資源或者沒有正確的釋放資源,等到有問題又不知道怎么回事!這里給出一個通過JDBC操作數據庫的簡單例子, 希望有一定的參考價值,為了方便,通過數據庫連接工廠獲得連接。
有關連接工廠的代碼:http://blog.csdn.net/treeroot/archive/2004/09/24/115372.aspx
先看看下面這段代碼,你是否覺得有問題?
try {
Connection conn = ConnectionFactory_JDBC2.getConnection();
Statement state = conn.createStatement();
ResultSet rs = state.executeQuery("select * from table");
//這里處理數據
rs.close();
state.close();
conn.close(); //有的連這一句都沒有
}
catch(
SQLException e){
//這里可以自己處理,也可以拋出
}
這里給出一個替代實現:
Connection conn = null;
Statement state = null;
ResultSet rs = null;
try {
conn = ConnectionFactory_JDBC2.getConnection();
state = conn.createStatement();
rs = state.executeQuery("select * from table");
//處理數據
}
catch(SQLException e){
//這里可以自己處理,也可以拋出
}
finally{
if(rs!=null){
try{rs.close();}catch(SQLException e){}
}
if(state!=null){
try{state.close();}catch(SQLException e){}
}
ConnectionFactory_JDBC2.closeConnection(conn);
}
這個實現好像更加復雜了,但是
可靠性更高了,雖然第一段代碼的實現一般不會有什么問題,確實很難會有問題(有時候想讓
Windows蘭屏還真不容易),但是還是強烈建議通過finally釋放你的資源,不要讓潛在的危險存在!
原文轉自:http://www.kjueaiud.com