Seviyesinde bağımsız kapalı bağlantı kapalı değil mi?
Pet projemiz kod inceleme (çoğunlukla FindBugs gibi araçları kullanarak) yapıyorum ve hatalı olarak işaretlenmiş aşağıdaki kodu (yalancı) FindBugs:
Connection conn = dataSource.getConnection();
try{
PreparedStatement stmt = conn.prepareStatement();
//initialize the statement
stmt.execute();
ResultSet rs = stmt.getResultSet();
//get data
}finally{
conn.close();
}
Hata bu kod kaynaklarını serbest olmayabilir. Seviyesinde bağımsız ve Deyim sonunda onları kapattım bu kadar kapalı değildi, bunu anladım:
finally{
try{
rs.close()
}catch(SqlException se){
//log it
}
try{
stmt.close();
}catch(SqlException se){
//log it
}
conn.close();
}
Ama birçok proje (pek çok şirket) yukarıdaki örüntü ile karşılaştım, ve kimse ResultSets veya Tabloları kapanış oldu.
Bağlantı kapalıyken ResultSets ve İfadeleri ile sorun kapalı değil mi?
this ve sadece Oracle için Bağlantı (Oracle db, benim düzeltmeler dolayısıyla kullanıyoruz) kapatırken ResultSets kapanış ile sorunları ifade eder buldum. java.sql.apı Bağlantısı yok diyor.() yakın javadoc.
CEVAP
SADECE bağlantıyı kapatmadan bir sorun ve sonuç kümesi değil, eğer bağlantı yönetimi kodunuzu bağlantı havuzu kullanan, connection.close()
sadece bağlantı havuzu geri koymak. Ayrıca, bazı veritabanı açıkça kapalı olduğu sürece düzgün bir şekilde serbest bırakılır. bu sunucu üzerinde İmleci bir kaynak var.
pozisyon:oyun Chrome ve IE kapalı tuva...
Yerli mal Resultsets ve Deyimleri Bağl...
Bir bellek sızıntısı bir MemoryStream ...
Nasıl OLANLARI bir seviyesinde bağımsı...
PHP bir Dizi Bağımsız değişken olarak ...