lunes, 31 de octubre de 2011

Clase "BaseDatos" y fichero de configuración

Hace algunos días comencé con el acceso a bases de datos desde Java y expliqué, brevemente, los pasos a seguir para implementar el puente JDBC-ODBC. Siguiendo con el tema de bases de datos, os dejo en esta entrada la clase "BaseDatos" y el fichero de configuración para el acceso a las bases de datos.

Cada proyecto nuevo en el que queramos acceder a una base de datos debe llevar tanto esta clase, como su correspondiente fichero de configuración, con los datos correspondientes.

La clase "BaseDatos" nos permitirá realizar todas las gestiones necesarias para acceder a una base de datos:
  • Registrar el driver.
  • Conectar a la base de datos.
  • Cerrar la conexión con la base de datos.
Al implementar esta clase, haremos que sólo se cree una conexión, que se utilizará para todos los accesos que se realicen a la base de datos en cada conexión. De esta manera no se tendrá que abrir y cerrar la conexión cada vez que se quiera acceder a la base de datos. Para conseguirlo el constructor de la clase es privado (no se podrá instanciar) y la conexión propiamente dicha será un atributo estático.

CLASE "BASEDATOS"

public class BaseDatos {
 
 private static Connection conexion = null;
 // Para utilizar el fichero de propiedades:
 private static ResourceBundle bundle = ResourceBundle.getBundle("dir.efemerides.config");
 
 // De esta manera no podemos instanciar BaseDatos
 private BaseDatos() {
 }
 
 public static Connection getConnection() throws SQLException {
  if (conexion == null || conexion.isClosed()) {
   conexion = conectar();
  }
  return conexion;
 }

 private static Connection conectar() {
  registrarDriver();
  Connection conexion = null;
  try {
   String url = bundle.getString("db.url");
   String username = bundle.getString("db.username");
   String password = bundle.getString("db.password");
   conexion = DriverManager.getConnection(url, username, password);
  } catch (SQLException e) {
   System.err.println("No fue posible establecer la conexión.");
   e.printStackTrace();
  }
  
  return conexion;
 }
 
 public static void desconectar() {
  try {
   if (conexion != null && !conexion.isClosed()) {
    conexion.close();
    conexion = null;
   }
  } catch (SQLException e) {
   System.err.println("No fue posible cerrar la conexión.");
   e.printStackTrace();
  }
 }
 
 private static void registrarDriver() {
  try {
   Class.forName(bundle.getString("db.driver"));
  } catch (ClassNotFoundException e) {
   System.err.println("Error al cargar el driver JDBC");
   e.printStackTrace();
  }
 }
}

El fichero de configuración tendrá los datos necesarios para acceder a la base de datos. Estos datos serán los que hayamos especificado al implementar el puente JDBC-ODBC.

La URL de conexión corresponde al nombre que le hayamos dado al origen de datos.

FICHERO DE CONFIGURACIÓN

# Driver de la base de datos:
db.driver=sun.jdbc.odbc.JdbcOdbcDriver

# Url de conexión:
db.url=jdbc:odbc:Efemerides

# Usuario y contraseña:
db.username=admin
db.password=1234

No hay comentarios:

Publicar un comentario