re: JDBC查詢動態封裝 cccp21 2009-02-16 21:57
@銀河使者
你是說在web頁中接受并使用ResultSet然后再在該頁中關閉ResultSet和數據庫連接?
還是說接受并用完ResultSet后關閉ResultSet并調用另一個函數關閉連接?
一般每個Connection都是線程獨享的——那為什么我以前看到很多取數據源連接的方法要保證之生成一個數據源對象?比如:
private static DataSource ds = null;
private static Object Lock = new Object();
/**
* 生成DataSource
* @return 返回一個DataSource對象
*/
public static DataSource gainDataSource(){
try {
if(ds == null){
synchronized(Lock){
if(ds == null){
InitialContext ctx = new InitialContext();
ds = (DataSource)ctx.lookup("數據源名");
}
}
}
} catch (NamingException e) {e.printStackTrace();}
return ds;
}
這有什么好處呢?
re: JDBC查詢動態封裝 cccp21 2009-01-31 10:57
@銀河使者
我覺得這個思路不錯是因為這樣可以在同一個方法中建立、關閉數據庫連接。之前曾經在關閉數據庫連接這個問題上吃過虧。
如果在應用中直接訪問ResultSet,關閉數據庫連接有點麻煩——如果之前就關閉了數據庫連接,那么應用在ResultSet中就訪問不到數據,而不關閉的話,就要在應用完成后關閉數據庫連接,這里就會有些混亂。你有什么好主意呢?
re: JDBC查詢動態封裝 cccp21 2009-01-29 11:31
@銀河使者
請注意,是條件的個數是動態的,PreparedStatement只是讓開發者設置參數值,但是參數個數還是固定的。
把每行放在一個Map中,再把結果集放在Vector中,是為了把JDBC與應用分離開,我開始的時候也和你一樣,后來才聽別人指出這一點的。
牛!
寒松問的版本應該是指sun的多少版本——1.4?1.5?1.6?