/** * @(#) OracleDataStore.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 datos a la base de datos Oracle. *
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 OracleDataStore extends DataStore { /* * Obtención de la conexión a la base de datos Oracle. * Utiliza el controlador JDBC de tipo 4 de Oracle para la 10g * o el de tipo 6 para la 11g * @return El objeto de conexión a la base de datos. */ public Connection obtenerConexion() throws ExcepcionTarisan { OracleParametros.inicializarParametros(); Connection conexion = null; try { Class.forName(OracleParametros.driverJdbc); if(com.tarisan.persistencia.PersistenciaParametros.tipoServidorOracle.equals("11g")) { conexion = DriverManager.getConnection(OracleParametros.cadenaConexion,com.tarisan.persistencia.PersistenciaParametros.usuario,com.tarisan.persistencia.PersistenciaParametros.password); LogTarisan.logger.log(NivelLog.DEBUG, "Conexión 11g obtenida: " + conexion + " (" + OracleParametros.cadenaConexion+", "+com.tarisan.persistencia.PersistenciaParametros.usuario+", "+com.tarisan.persistencia.PersistenciaParametros.password + ")"); } else { conexion = DriverManager.getConnection(OracleParametros.cadenaConexion); LogTarisan.logger.log(NivelLog.DEBUG, "Conexión 10g 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 SQLEXCEPTION 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 EXCEPTION 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 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 Oracle. * @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()); } } }