Hola,
Desde hace algunos días tengo una duda sobre el patrón singlenton y si es buena idea utilizarlo para manejar la forma en como llamo cuando requiero realizar alguna transacción con la base de datos PostgreSQL. La duda está relacionada a; cómo se gestionan utilizando este patrón la conexiones que ya se dejaron de usar, es decir si no se cierran en ningún momento o si el Garbage Collector las recicla. Ya que como pueden ver en la clase no hay un método que la cierre algo como closeConnection() .
Gracias de antemano por los posibles aportes a esta duda que me embarga.
Desde hace algunos días tengo una duda sobre el patrón singlenton y si es buena idea utilizarlo para manejar la forma en como llamo cuando requiero realizar alguna transacción con la base de datos PostgreSQL. La duda está relacionada a; cómo se gestionan utilizando este patrón la conexiones que ya se dejaron de usar, es decir si no se cierran en ningún momento o si el Garbage Collector las recicla. Ya que como pueden ver en la clase no hay un método que la cierre algo como closeConnection() .
Gracias de antemano por los posibles aportes a esta duda que me embarga.
Código (java) [Seleccionar]
public class bdS {
//Instancia estatica de la conexion, sino uno llega a existir
private static Connection connection = null;
/**
*
* @return Devuelve la instancia unica de Conexion
*/
public static Connection getConexion() {
//Si la instancia no ha sido creado aun, se crea
if (bdS.connection == null) {
contruyendoConexion();
}
return bdS.connection;
}
//Obtener las instancias de Conexion JDBC
private static void contruyendoConexion() {
try {
Class.forName("org.postgresql.Driver");
String url = "jdbc:postgresql://localhost:5432/bd";
String usuario = "postgres";
String clave = "password";
bdS.connection = DriverManager.getConnection(url, usuario, clave);
} catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException(contruyendoConexion) : " + e.getMessage());
System.gc();
} catch (SQLException e) {
System.out.println("SQLException(contruyendoConexion) : " + e.getMessage());
System.gc();
} catch (Exception e) {
System.out.println(" Exception General (contruyendoConexion) : " + e.getMessage());
System.gc();
}
}
}