का उपयोग कर पूलिंग मेरी सहायक वर्ग डीबी कनेक्शन लेने के लिए है।JDBC कनेक्शन के बाद C3P0
public class DBConnection {
private static DataSource dataSource;
private static final String DRIVER_NAME;
private static final String URL;
private static final String UNAME;
private static final String PWD;
static {
final ResourceBundle config = ResourceBundle
.getBundle("props.database");
DRIVER_NAME = config.getString("driverName");
URL = config.getString("url");
UNAME = config.getString("uname");
PWD = config.getString("pwd");
dataSource = setupDataSource();
}
public static Connection getOracleConnection() throws SQLException {
return dataSource.getConnection();
}
private static DataSource setupDataSource() {
ComboPooledDataSource cpds = new ComboPooledDataSource();
try {
cpds.setDriverClass(DRIVER_NAME);
} catch (PropertyVetoException e) {
e.printStackTrace();
}
cpds.setJdbcUrl(URL);
cpds.setUser(UNAME);
cpds.setPassword(PWD);
cpds.setMinPoolSize(5);
cpds.setAcquireIncrement(5);
cpds.setMaxPoolSize(20);
return cpds;
}
}
डीएओ में
मैं कुछ इस तरह लिख कर दिया जाएगा: अब
try {
conn = DBConnection.getOracleConnection();
....
} finally {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
logger
.logError("Exception occured while closing cursors!", e);
}
, मेरे सवाल का मैं कर्सर को बंद करने (की तुलना में किसी अन्य को साफ करने के लिए अन्य परेशान है कनेक्शन/बयान/परिणामसेट/तैयार स्थिति) अंत में ब्लॉक में सूचीबद्ध है।
this सफाई क्या है ?? मुझे कब और कहाँ करना चाहिए?
क्या आपको उपरोक्त कोड में कुछ भी गलत लगता है, कृपया बताएं।
जेडीके 7 में आपको तैयार स्टेटमेंट को बंद करने की आवश्यकता नहीं है, यह ऑटोक्लोसेबल लागू करता है। [इस पोस्ट के कारण] (http://stackoverflow.com/questions/14862853/resource-leak-warning-in-eclipse) –