Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/09/2011, 14:21
Avatar de gasoft
gasoft
 
Fecha de Ingreso: abril-2009
Mensajes: 68
Antigüedad: 15 años, 10 meses
Puntos: 3
Patrón Singlenton y conexión BD

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 closeConexion() .

Gracias de antemano por los posibles aportes a esta duda que me embarga, adjunto el código de la clase.

Código JAVA:
Ver original
  1. public class bdS {
  2.  
  3.     //Instancia estatica de la conexion, sino uno llega a existir
  4.     private static Connection connection = null;
  5.  
  6.     /**
  7.      *
  8.      * @return Devuelve la instancia unica de Conexion
  9.      */
  10.     public static Connection getConexion() {
  11.         //Si la instancia no ha sido creado aun, se crea
  12.         if (bdS.connection == null) {
  13.             contruyendoConexion();
  14.         }
  15.         return bdS.connection;
  16.     }
  17.  
  18.     //Obtener las instancias de Conexion JDBC
  19.     private static void contruyendoConexion() {
  20.         try {
  21.             Class.forName("org.postgresql.Driver");
  22.             String url = "jdbc:postgresql://localhost:5432/bd";
  23.             String usuario = "postgres";
  24.             String clave = "passwd";
  25.             bdS.connection = DriverManager.getConnection(url, usuario, clave);
  26.         } catch (ClassNotFoundException e) {
  27.             System.out.println("ClassNotFoundException(contruyendoConexion)  : " + e.getMessage());
  28.             System.gc();
  29.         } catch (SQLException e) {
  30.             System.out.println("SQLException(contruyendoConexion) : " + e.getMessage());
  31.             System.gc();
  32.         } catch (Exception e) {
  33.             System.out.println(" Exception General (contruyendoConexion) : " + e.getMessage());
  34.             System.gc();
  35.         }
  36.     }
  37. }