94 lines
3.3 KiB
Java
94 lines
3.3 KiB
Java
/**
|
|
* @(#) 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.
|
|
* <br>Los métodos de recuperación y actualización pueden sobreescribir a los definidos
|
|
* en la clase padre <code>DataStore</code> si es necesario.
|
|
* @author <a href="mailto:sistemas@imqnavarra.com">Dpto. Informática</a>.
|
|
* @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());
|
|
}
|
|
}
|
|
|
|
|
|
}
|