88 lines
2.7 KiB
Java
88 lines
2.7 KiB
Java
/**
|
|
* @(#) 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.
|
|
* <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 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());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|