कनेक्शन प्रबंधन के लिए एक उपयोगिता वर्ग बनाएं ताकि इसे पूरे एप्लिकेशन में एक ही बिंदु पर प्रबंधित किया जा सके।
DataSource
लोड न करें हर बार आपको एक नए कनेक्शन की आवश्यकता होती है।
नमूना कोड:
public class ConnectionUtil {
private DataSource dataSource;
private static ConnectionUtil instance = new ConnectionUtil();
private ConnectionUtil() {
try {
Context initContext = new InitialContext();
dataSource = (DataSource) initContext.lookup("JNDI_LOOKUP_NAME");
} catch (NamingException e) {
e.printStackTrace();
}
}
public static ConnectionUtil getInstance() {
return instance;
}
public Connection getConnection() throws SQLException {
Connection connection = dataSource.getConnection();
return connection;
}
public void close(Connection connection) throws SQLException {
if (connection != null && !connection.isClosed()) {
connection.close();
}
connection = null;
}
}
कनेक्शन को हमेशा बंद करें और इसे try-catch-finally
में हैंडल करें
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = ConnectionUtil.getInstance().getConnection();
...
} finally {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
ConnectionUtil.getInstance().close(conn);
}
}