/** * @(#) OdbcDataStore.java */ package com.tarisan.persistencia; import com.tarisan.excepcion.*; import com.tarisan.log.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * Gestión de accesos de conexión, recuperación y actualización de una base de datos vía ODBC. *
Los métodos de recuperación y actualización pueden sobreescribir a los definidos * en la clase padre DataStore si es necesario. * @author Dpto. Informática. * @version 1.0, 24/09/2003 */ public class OdbcDataStore extends DataStore { /* * Obtención de la conexión a la base de datos vía ODBC. * Utiliza el controlador JDBC puente con ODBC (jdbc-odbc bridge). * @return El objeto de conexión a la base de datos. */ public java.sql.Connection obtenerConexion() throws ExcepcionTarisan { OdbcParametros.inicializarParametros(); Connection conexion = null; try { Class.forName(OdbcParametros.driverJdbc); conexion = DriverManager.getConnection(OdbcParametros.cadenaConexion); LogTarisan.logger.log(NivelLog.DEBUG, "Conexión obtenida: " + conexion + " (" + OracleParametros.cadenaConexion + ")"); } catch(ClassNotFoundException e) { LogTarisan.logger.log(NivelLog.ERROR, "Error CLASSNOTFOUND en la obtención de la conexión: " + e + " (" + OracleParametros.cadenaConexion + ")"); throw new ExcepcionTarisan(e.toString()); } catch(SQLException sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error SQL en la obtención de la conexión: " + sqle + " (" + OracleParametros.cadenaConexion + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Exception e) { LogTarisan.logger.log(NivelLog.ERROR, "Error EXCEPCION en la obtención de la conexión: " + e + " (" + OracleParametros.cadenaConexion + ")"); throw new ExcepcionTarisan(e.toString()); } catch(Throwable t) { LogTarisan.logger.log(NivelLog.ERROR, "Error THROWABLE en la obtención de la conexión: " + t + " (" + OracleParametros.cadenaConexion + ")"); throw new ExcepcionTarisan(t.getMessage()); } return conexion; } /** * Liberar la conexión a la base de datos ODBC. * @param conexion La conexión a liberar. */ public void liberarConexion(Connection conexion) throws ExcepcionTarisan { try { conexion.close(); LogTarisan.logger.log(NivelLog.DEBUG, "Conexión liberada: " + conexion + " (" + OracleParametros.cadenaConexion + ")"); } catch(SQLException sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la liberación de la conexión " + conexion + ": " + sqle + " (" + OracleParametros.cadenaConexion + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } } }