Añado los fuentes de java
This commit is contained in:
@@ -0,0 +1,843 @@
|
||||
/**
|
||||
* @(#) DataStore.java
|
||||
*/
|
||||
|
||||
package com.tarisan.persistencia;
|
||||
|
||||
import com.tarisan.excepcion.*;
|
||||
import com.tarisan.log.*;
|
||||
import com.tarisan.util.Utilidades;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
|
||||
import java.util.Vector;
|
||||
|
||||
|
||||
/**
|
||||
* Gesti�n de accesos de conexi�n, recuperaci�n y actualizaci�n de registros en la base de datos.
|
||||
* @author <a href="mailto:sistemas@imqnavarra.com">Dpto. Inform�tica</a>.
|
||||
* @version 1.0, 24/09/2003
|
||||
*/
|
||||
public class DataStore
|
||||
{
|
||||
|
||||
/**
|
||||
* Obtenci�n de la conexi�n a la base de datos.
|
||||
* <br>La implementaci�n del m�todo se hace en el DataStore correspondiente a cada base de datos.
|
||||
* @return El objeto de conexi�n a la base de datos.
|
||||
* @throws
|
||||
*/
|
||||
public java.sql.Connection obtenerConexion() throws ExcepcionTarisan
|
||||
{
|
||||
Connection conexion = null;
|
||||
return conexion;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Modifica la conexi�n para que se trate de una conexi�n transaccional.
|
||||
* @param conexion La conexi�n que modifiaremos para soportar transacciones.
|
||||
* @return El objeto de conexi�n transaccional a la base de datos.
|
||||
* @throws
|
||||
*/
|
||||
public Connection iniciarTransaccion(Connection conexion) throws ExcepcionTarisan
|
||||
{
|
||||
try
|
||||
{
|
||||
conexion.setAutoCommit(false);
|
||||
return conexion;
|
||||
}
|
||||
catch(SQLException ex)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la creacion de la conexion transaccional: " + ex );
|
||||
throw new ExcepcionTarisan(ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Confirma la transacci�n iniciada por el usuario.
|
||||
* @param conexion Conexi�n que contiene la transacci�n a confirmar.
|
||||
* @throws
|
||||
*/
|
||||
public void confirmarTransaccion(Connection conexion) throws ExcepcionTarisan
|
||||
{
|
||||
try
|
||||
{
|
||||
conexion.commit();
|
||||
conexion.setAutoCommit(true);
|
||||
}
|
||||
catch(SQLException ex)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la confirmacion de la transaccion: " + ex );
|
||||
throw new ExcepcionTarisan(ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Deshace la transacci�n iniciada por el usuario.
|
||||
* @param conexion La conexi�n que contiene la transacci�n a deshacer.
|
||||
* @throws
|
||||
*/
|
||||
public void deshacerTransaccion(Connection conexion) throws ExcepcionTarisan
|
||||
{
|
||||
try
|
||||
{
|
||||
conexion.rollback();
|
||||
conexion.setAutoCommit(true);
|
||||
}
|
||||
catch(SQLException ex)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error al deshacer la transaccion: " + ex );
|
||||
throw new ExcepcionTarisan(ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Libera la conexi�n a la base de datos.
|
||||
* <br>La implementaci�n del m�todo se hace en el DataStore correspondiente a cada base de datos.
|
||||
* @param conexion La conexi�n a liberar.
|
||||
* @throws
|
||||
*/
|
||||
public void liberarConexion(Connection conexion) throws ExcepcionTarisan
|
||||
{
|
||||
try {
|
||||
conexion.close();
|
||||
} catch (SQLException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Selecciona registros de la base de datos retornando un Vector con el resultado obtenido.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>obtiene la conexi�n</li>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>recoge el objeto <code>ResultSet</code></li>
|
||||
* <li>cierra el <code>ResultSet</code></li>
|
||||
* <li>cierra la sentencia</li>
|
||||
* <li>libera la conexi�n</li>
|
||||
* <li>retorna el <code>ResultSet</code> o null seg�n el resultado de la selecci�n</li>
|
||||
* </ol><br>
|
||||
* @param sqlSelect La sentencia SQL completa de selecci�n (incluidas sus condiciones) en la base de datos.
|
||||
* @return El Vector con los registros seleccionados (todos pertenencientes a la clase <code>Object</code>).
|
||||
* @throws
|
||||
*/
|
||||
public Vector seleccionar(String sqlSelect) throws ExcepcionTarisan
|
||||
{
|
||||
Vector vResultado = new Vector();
|
||||
|
||||
Connection conexion = null;
|
||||
try
|
||||
{
|
||||
conexion = this.obtenerConexion();
|
||||
}
|
||||
catch(ExcepcionTarisan sqle)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selecci�n del Vector: " + sqle + "(" + sqlSelect + ")");
|
||||
}
|
||||
|
||||
if(conexion != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlSelect, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
while(rs.next())
|
||||
{
|
||||
vResultado.addElement(rs.getString(1));
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
this.liberarConexion(conexion);
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Vector obtenido " + vResultado + " (" + sqlSelect + ")");
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selecci�n del Vector: " + sqle + "(" + sqlSelect + ")");
|
||||
throw new ExcepcionTarisan(sqle.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
return vResultado;
|
||||
}
|
||||
|
||||
/**
|
||||
* Selecciona registros de la base de datos retornando un ResultSet con el resultado obtenido.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>recoge el objeto <code>ResultSet</code></li>
|
||||
* <li>retorna el <code>ResultSet</code> o null seg�n el resultado de la selecci�n</li>
|
||||
* </ol><br>
|
||||
* @param conexion El objeto <code>Connection</code> de conexi�n a la base de datos.
|
||||
* @param sqlSelect La sentencia SQL completa de selecci�n (incluidas sus condiciones) en la base de datos.
|
||||
* @return El ResultSet con los registros seleccionados o null si se ha producido alg�n error.
|
||||
* @throws
|
||||
*/
|
||||
public ResultSet seleccionar(Connection conexion, String sqlSelect) throws ExcepcionTarisan
|
||||
{
|
||||
ResultSet rs = null;
|
||||
|
||||
if(conexion != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlSelect, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Lanzamos la query:"+sqlSelect);
|
||||
rs = ps.executeQuery();
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "ResultSet obtenido " + rs + " (" + sqlSelect + ")");
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selecci�n del ResultSet: " + sqle + "(" + sqlSelect + ")");
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
}
|
||||
|
||||
return rs;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Selecciona registros de la base de datos retornando un ResultSet con el resultado obtenido.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>carga cada uno de las condiciones del array en la sentencia, en su orden correspondiente</li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>recoge el objeto <code>ResultSet</code></li>
|
||||
* <li>retorna el <code>ResultSet</code> o null seg�n el resultado de la selecci�n</li>
|
||||
* </ol><br>
|
||||
* @param conexion El objeto <code>Connection</code> de conexi�n a la base de datos.
|
||||
* @param sqlSelect La sentencia SQL de selecci�n en la base de datos.
|
||||
* @param aCondiciones El array de objetos con las condiciones a buscar en la sentencia SQL.
|
||||
* @return El ResultSet con los registros seleccionados o null si se ha producido alg�n error.
|
||||
* @throws
|
||||
*/
|
||||
public ResultSet seleccionar(Connection conexion, String sqlSelect, Object[] aCondiciones) throws ExcepcionTarisan
|
||||
{
|
||||
ResultSet rs = null;
|
||||
|
||||
if(conexion != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Se va a ejecutar la sql: " + sqlSelect + ", con las condiciones " + aCondiciones.toString());
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlSelect, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
||||
|
||||
for(int i = 0; i < aCondiciones.length; i++)
|
||||
{
|
||||
ps.setObject(i+1, aCondiciones[i]);
|
||||
}
|
||||
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Se ejecuta la conexion: " + ps.toString());
|
||||
rs = ps.executeQuery();
|
||||
//LogTarisan.logger.log(NivelLog.DEBUG, "ResultSet obtenido " + rs + " " + sqlSelect + " (" + Utilidades.generarStringDeArray(aCondiciones) + ")");
|
||||
StringBuffer sql = new StringBuffer(sqlSelect);
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "ResultSet obtenido " + rs + " " + Utilidades.obtenerSentenciaSQL(sql, null, aCondiciones) );
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selecci�n del ResultSet: " + sqle + " " + sqlSelect + " (" + Utilidades.generarStringDeArray(aCondiciones) + ")");
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
}
|
||||
|
||||
return rs;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Inserta un registro en la base de datos.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>obtiene la conexi�n</li>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>cierra la sentencia</li>
|
||||
* <li>libera la conexi�n</li>
|
||||
* <li>retorna true o false seg�n el resultado de la inserci�n</li>
|
||||
* </ol><br>
|
||||
* @param sqlInsert La sentencia SQL de inserci�n completa, incluidos los valores.
|
||||
* @return El valor booleano indicando si se ha realizado correctamente la inserci�n.
|
||||
* @throws
|
||||
*/
|
||||
public boolean insertar(String sqlInsert) throws ExcepcionTarisan
|
||||
{
|
||||
boolean resultado = true;
|
||||
|
||||
Connection conexion = null;
|
||||
try
|
||||
{
|
||||
conexion = this.obtenerConexion();
|
||||
if(conexion != null)
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlInsert);
|
||||
ps.executeUpdate();
|
||||
ps.close();
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Inserci�n de registro correcta " + sqlInsert);
|
||||
this.liberarConexion(conexion);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultado = false;
|
||||
}
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la inserci�n de registro: " + sqle + " " + sqlInsert);
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
|
||||
return resultado;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Inserta un registro en la base de datos utilizando la conexi�n que se le pasa por par�metro.
|
||||
* Utilizado para las transacciones.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>cierra la sentencia</li>
|
||||
* <li>retorna true o false seg�n el resultado de la inserci�n</li>
|
||||
* </ol><br>
|
||||
* @param sqlInsert La sentencia SQL de inserci�n completa, incluidos los valores.
|
||||
* @param conexion La conexi�n utilizada para ejecutar la sentencia.
|
||||
* @return El valor booleano indicando si se ha realizado correctamente la inserci�n.
|
||||
* @throws
|
||||
*/
|
||||
public boolean insertar(String sqlInsert, Connection conexion) throws ExcepcionTarisan
|
||||
{
|
||||
boolean resultado = true;
|
||||
|
||||
try
|
||||
{
|
||||
if(conexion != null)
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlInsert);
|
||||
ps.executeUpdate();
|
||||
ps.close();
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Inserci�n de registro correcta " + sqlInsert);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultado = false;
|
||||
}
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la inserci�n de registro: " + sqle + " " + sqlInsert);
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
|
||||
return resultado;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserta un registro en la base de datos.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>obtiene la conexi�n</li>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>carga cada uno de los valores del array en la sentencia, en su orden correspondiente</li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>cierra la sentencia</li>
|
||||
* <li>libera la conexi�n</li>
|
||||
* <li>retorna true o false seg�n el resultado de la inserci�n</li>
|
||||
* </ol>
|
||||
* @param sqlInsert La sentencia SQL de inserci�n completa, incluidos los valores.
|
||||
* @param aValores El array de objetos con los valores a insertar en la sentencia SQL.
|
||||
* @return El valor booleano indicando si se ha realizado correctamente la inserci�n.
|
||||
* @throws
|
||||
*/
|
||||
public boolean insertar(String sqlInsert, Object[] aValores) throws ExcepcionTarisan
|
||||
{
|
||||
boolean resultado = true;
|
||||
|
||||
Connection conexion = null;
|
||||
|
||||
try
|
||||
{
|
||||
conexion = this.obtenerConexion();
|
||||
if(conexion != null)
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlInsert);
|
||||
|
||||
for(int i = 0; i < aValores.length; i++)
|
||||
{
|
||||
ps.setObject(i+1, aValores[i]);
|
||||
}
|
||||
ps.executeUpdate();
|
||||
ps.close();
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Inserci�n de registro correcta " + sqlInsert + " (" + Utilidades.generarStringDeArray(aValores) + ")");
|
||||
this.liberarConexion(conexion);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultado = false;
|
||||
}
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
resultado = false;
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la inserci�n de registro: " + sqle + " " + sqlInsert + " (" + Utilidades.generarStringDeArray(aValores) + ")");
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
|
||||
return resultado;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserta un registro en la base de datos utilizando la conexi�n que se le pasa por par�metro.
|
||||
* Utilizado para las transacciones.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>carga cada uno de los valores del array en la sentencia, en su orden correspondiente</li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>cierra la sentencia</li>
|
||||
* <li>retorna true o false seg�n el resultado de la inserci�n</li>
|
||||
* </ol>
|
||||
* @param sqlInsert La sentencia SQL de inserci�n completa, incluidos los valores.
|
||||
* @param aValores El array de objetos con los valores a insertar en la sentencia SQL.
|
||||
* @param conexion La conexi�n utilizada para ejecutar la sentencia.
|
||||
* @return El valor booleano indicando si se ha realizado correctamente la inserci�n.
|
||||
* @throws
|
||||
*/
|
||||
public boolean insertar(String sqlInsert, Object[] aValores, Connection conexion) throws ExcepcionTarisan
|
||||
{
|
||||
boolean resultado = true;
|
||||
|
||||
try
|
||||
{
|
||||
if(conexion != null)
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlInsert);
|
||||
|
||||
for(int i = 0; i < aValores.length; i++)
|
||||
{
|
||||
ps.setObject(i+1, aValores[i]);
|
||||
}
|
||||
ps.executeUpdate();
|
||||
ps.close();
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Inserci�n de registro correcta " + sqlInsert + " (" + Utilidades.generarStringDeArray(aValores) + ")");
|
||||
}
|
||||
else
|
||||
{
|
||||
resultado = false;
|
||||
}
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
resultado = false;
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la inserci�n de registro: " + sqle + " " + sqlInsert + " (" + Utilidades.generarStringDeArray(aValores) + ")");
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
|
||||
return resultado;
|
||||
}
|
||||
|
||||
/**
|
||||
* Modifica registros de la base de datos.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>obtiene la conexi�n</li>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>cierra la sentencia</li>
|
||||
* <li>libera la conexi�n</li>
|
||||
* <li>retorna true o false seg�n el resultado de la modificaci�n</li>
|
||||
* </ol>
|
||||
* @param sqlUpdate La sentencia SQL de modificaci�n completa, incluidos los valores y las condiciones.
|
||||
* @return El valor booleano indicando si se ha realizado correctamente la modificaci�n.
|
||||
* @throws
|
||||
*/
|
||||
public boolean actualizar(String sqlUpdate) throws ExcepcionTarisan
|
||||
{
|
||||
boolean resultado = true;
|
||||
|
||||
Connection conexion = null;
|
||||
try
|
||||
{
|
||||
conexion = this.obtenerConexion();
|
||||
if(conexion != null)
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlUpdate);
|
||||
ps.executeUpdate();
|
||||
ps.close();
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Modificaci�n de registros correcta " + sqlUpdate);
|
||||
this.liberarConexion(conexion);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultado = false;
|
||||
}
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la modificaci�n de registros: " + sqle + " " + sqlUpdate);
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
|
||||
return resultado;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Modifica registros de la base de datos utilizando la conexi�n que se le pasa por par�metro.
|
||||
* Utilizado para las transacciones.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>cierra la sentencia</li>
|
||||
* <li>retorna true o false seg�n el resultado de la modificaci�n</li>
|
||||
* </ol>
|
||||
* @param sqlUpdate La sentencia SQL de modificaci�n completa, incluidos los valores y las condiciones.
|
||||
* @param conexion La conexi�n utilizada para ejecutar la sentencia.
|
||||
* @return El valor booleano indicando si se ha realizado correctamente la modificaci�n.
|
||||
* @throws
|
||||
*/
|
||||
public boolean actualizar(String sqlUpdate, Connection conexion) throws ExcepcionTarisan
|
||||
{
|
||||
boolean resultado = true;
|
||||
|
||||
try
|
||||
{
|
||||
if(conexion != null)
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlUpdate);
|
||||
ps.executeUpdate();
|
||||
ps.close();
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Modificaci�n de registros correcta " + sqlUpdate);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultado = false;
|
||||
}
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la modificaci�n de registros: " + sqle + " " + sqlUpdate);
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
|
||||
return resultado;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Modifica registros de la base de datos.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>obtiene la conexi�n</li>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>carga cada uno de los valores del array en la sentencia, en su orden correspondiente</li>
|
||||
* <li>carga cada uno de las condiciones del array en la sentencia, en su orden correspondiente</li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>cierra la sentencia</li>
|
||||
* <li>libera la conexi�n</li>
|
||||
* <li>retorna true o false seg�n el resultado de la modificaci�n</li>
|
||||
* </ol>
|
||||
* @param sqlInsert La sentencia SQL de inserci�n completa, incluidos los valores.
|
||||
* @param aValores El array de objetos con los valores a actualizar en la sentencia SQL.
|
||||
* @param aCondiciones El array de objetos con las condiciones a buscar en la sentencia SQL.
|
||||
* @return El valor booleano indicando si se ha realizado correctamente la inserci�n.
|
||||
* @throws
|
||||
*/
|
||||
public boolean actualizar(String sqlUpdate, Object[] aValores, Object[] aCondiciones) throws ExcepcionTarisan
|
||||
{
|
||||
boolean resultado = true;
|
||||
|
||||
Connection conexion = null;
|
||||
|
||||
try
|
||||
{
|
||||
conexion = this.obtenerConexion();
|
||||
if(conexion != null)
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlUpdate);
|
||||
|
||||
int cont = 1;
|
||||
for(int i = 0; i < aValores.length; i++)
|
||||
{
|
||||
ps.setObject(cont++, aValores[i]);
|
||||
}
|
||||
|
||||
for(int i = 0; i < aCondiciones.length; i++)
|
||||
{
|
||||
ps.setObject(cont++, aCondiciones[i]);
|
||||
}
|
||||
|
||||
ps.executeUpdate();
|
||||
ps.close();
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Modificaci�n de registros correcta " + sqlUpdate + " (" + Utilidades.generarStringDeArray(aValores) + ") (" + Utilidades.generarStringDeArray(aCondiciones) + ")");
|
||||
this.liberarConexion(conexion);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultado = false;
|
||||
}
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
resultado = false;
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la modificaci�n de registros: " + sqle + " " + sqlUpdate + " (" + Utilidades.generarStringDeArray(aValores) + ") (" + Utilidades.generarStringDeArray(aCondiciones) + ")");
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
|
||||
return resultado;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Modifica registros de la base de datos utilizando la conexi�n que se le pasa por par�metro.
|
||||
* Utilizado para las transacciones.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>carga cada uno de los valores del array en la sentencia, en su orden correspondiente</li>
|
||||
* <li>carga cada uno de las condiciones del array en la sentencia, en su orden correspondiente</li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>cierra la sentencia</li>
|
||||
* <li>retorna true o false seg�n el resultado de la modificaci�n</li>
|
||||
* </ol>
|
||||
* @param sqlInsert La sentencia SQL de inserci�n completa, incluidos los valores.
|
||||
* @param aValores El array de objetos con los valores a actualizar en la sentencia SQL.
|
||||
* @param aCondiciones El array de objetos con las condiciones a buscar en la sentencia SQL.
|
||||
* @param conexion La conexi�n utilizada para ejecutar la sentencia.
|
||||
* @return El valor booleano indicando si se ha realizado correctamente la inserci�n.
|
||||
* @throws
|
||||
*/
|
||||
public boolean actualizar(String sqlUpdate, Object[] aValores, Object[] aCondiciones, Connection conexion) throws ExcepcionTarisan
|
||||
{
|
||||
boolean resultado = true;
|
||||
|
||||
try
|
||||
{
|
||||
if(conexion != null)
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlUpdate);
|
||||
|
||||
int cont = 1;
|
||||
for(int i = 0; i < aValores.length; i++)
|
||||
{
|
||||
ps.setObject(cont++, aValores[i]);
|
||||
}
|
||||
|
||||
for(int i = 0; i < aCondiciones.length; i++)
|
||||
{
|
||||
ps.setObject(cont++, aCondiciones[i]);
|
||||
}
|
||||
|
||||
ps.executeUpdate();
|
||||
ps.close();
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Modificaci�n de registros correcta " + sqlUpdate + " (" + Utilidades.generarStringDeArray(aValores) + ") (" + Utilidades.generarStringDeArray(aCondiciones) + ")");
|
||||
}
|
||||
else
|
||||
{
|
||||
resultado = false;
|
||||
}
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
resultado = false;
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la modificaci�n de registros: " + sqle + " " + sqlUpdate + " (" + Utilidades.generarStringDeArray(aValores) + ") (" + Utilidades.generarStringDeArray(aCondiciones) + ")");
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
|
||||
return resultado;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Elimina registros de la base de datos.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>obtiene la conexi�n</li>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>cierra la sentencia</li>
|
||||
* <li>libera la conexi�n</li>
|
||||
* <li>retorna true o false seg�n el resultado de la eliminaci�n</li>
|
||||
* </ol><br>
|
||||
* @param sqlDelete La sentencia SQL de modificaci�n completa, incluidos los valores.
|
||||
* @return El valor booleano indicando si se ha realizado correctamente el borrado.
|
||||
* @throws
|
||||
*/
|
||||
public boolean borrar(String sqlDelete) throws ExcepcionTarisan
|
||||
{
|
||||
boolean resultado = true;
|
||||
|
||||
Connection conexion = null;
|
||||
try
|
||||
{
|
||||
conexion = this.obtenerConexion();
|
||||
if(conexion != null)
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlDelete);
|
||||
ps.executeUpdate();
|
||||
ps.close();
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Eliminaci�n de registros correcta " + sqlDelete);
|
||||
this.liberarConexion(conexion);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultado = false;
|
||||
}
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la eliminaci�n de registros: " + sqle + " " + sqlDelete);
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
|
||||
return resultado;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Elimina registros de la base de datos utilizando la conexi�n que se le pasa por par�metro.
|
||||
* Utilizado para las transacciones.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>cierra la sentencia</li>
|
||||
* <li>retorna true o false seg�n el resultado de la eliminaci�n</li>
|
||||
* </ol><br>
|
||||
* @param sqlDelete La sentencia SQL de modificaci�n completa, incluidos los valores.
|
||||
* @param conexion La conexi�n utilizada para ejecutar la sentencia.
|
||||
* @return El valor booleano indicando si se ha realizado correctamente el borrado.
|
||||
* @throws
|
||||
*/
|
||||
public boolean borrar(String sqlDelete, Connection conexion) throws ExcepcionTarisan
|
||||
{
|
||||
boolean resultado = true;
|
||||
|
||||
try
|
||||
{
|
||||
if(conexion != null)
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlDelete);
|
||||
ps.executeUpdate();
|
||||
ps.close();
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Eliminaci�n de registros correcta " + sqlDelete);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultado = false;
|
||||
}
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la eliminaci�n de registros: " + sqle + " " + sqlDelete);
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
|
||||
return resultado;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Elimina registros de la base de datos.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>obtiene la conexi�n</li>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>carga cada uno de las condiciones del array en la sentencia, en su orden correspondiente</li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>cierra la sentencia</li>
|
||||
* <li>libera la conexi�n</li>
|
||||
* <li>retorna true o false seg�n el resultado de la eliminaci�n</li>
|
||||
* </ol>
|
||||
* @param sqlDelete La sentencia SQL de inserci�n completa, incluidos los valores.
|
||||
* @param aCondiciones El array de objetos con las condiciones a buscar en la sentencia SQL.
|
||||
* @return El valor booleano indicando si se ha realizado correctamente la inserci�n.
|
||||
* @throws
|
||||
*/
|
||||
public boolean borrar(String sqlDelete, Object[] aCondiciones) throws ExcepcionTarisan
|
||||
{
|
||||
boolean resultado = true;
|
||||
|
||||
Connection conexion = null;
|
||||
|
||||
try
|
||||
{
|
||||
conexion = this.obtenerConexion();
|
||||
if(conexion != null)
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlDelete);
|
||||
|
||||
for(int i = 0; i < aCondiciones.length; i++)
|
||||
{
|
||||
ps.setObject(i+1, aCondiciones[i]);
|
||||
}
|
||||
ps.executeUpdate();
|
||||
ps.close();
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Eliminaci�n de registros correcta " + sqlDelete + " (" + Utilidades.generarStringDeArray(aCondiciones) + ")");
|
||||
this.liberarConexion(conexion);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultado = false;
|
||||
}
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
resultado = false;
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la eliminaci�n de registros: " + sqle + " " + sqlDelete + " (" + Utilidades.generarStringDeArray(aCondiciones) + ")");
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
|
||||
return resultado;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Elimina registros de la base de datos utilizando la conexi�n que se le pasa por par�metro.
|
||||
* Utilizado para las transacciones.
|
||||
* <br>El proceso que se sigue es el siguiente:<ol>
|
||||
* <li>prepara la sentencia: objeto <code>PreparedStatement</code></li>
|
||||
* <li>carga cada uno de las condiciones del array en la sentencia, en su orden correspondiente</li>
|
||||
* <li>ejecuta la sentencia</li>
|
||||
* <li>cierra la sentencia</li>
|
||||
* <li>retorna true o false seg�n el resultado de la eliminaci�n</li>
|
||||
* </ol>
|
||||
* @param sqlDelete La sentencia SQL de inserci�n completa, incluidos los valores.
|
||||
* @param aCondiciones El array de objetos con las condiciones a buscar en la sentencia SQL.
|
||||
* @param conexion La conexi�n utilizada para ejecutar la sentencia.
|
||||
* @return El valor booleano indicando si se ha realizado correctamente la inserci�n.
|
||||
* @throws
|
||||
*/
|
||||
public boolean borrar(String sqlDelete, Object[] aCondiciones, Connection conexion) throws ExcepcionTarisan
|
||||
{
|
||||
boolean resultado = true;
|
||||
|
||||
try
|
||||
{
|
||||
if(conexion != null)
|
||||
{
|
||||
PreparedStatement ps = conexion.prepareStatement(sqlDelete);
|
||||
|
||||
for(int i = 0; i < aCondiciones.length; i++)
|
||||
{
|
||||
ps.setObject(i+1, aCondiciones[i]);
|
||||
}
|
||||
ps.executeUpdate();
|
||||
ps.close();
|
||||
LogTarisan.logger.log(NivelLog.DEBUG, "Eliminaci�n de registros correcta " + sqlDelete + " (" + Utilidades.generarStringDeArray(aCondiciones) + ")");
|
||||
}
|
||||
else
|
||||
{
|
||||
resultado = false;
|
||||
}
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
resultado = false;
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error en la eliminaci�n de registros: " + sqle + " " + sqlDelete + " (" + Utilidades.generarStringDeArray(aCondiciones) + ")");
|
||||
throw new ExcepcionTarisan(sqle.toString());
|
||||
}
|
||||
|
||||
return resultado;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
/**
|
||||
* @(#) 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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
/**
|
||||
* @(#) OdbcParametros.java
|
||||
*/
|
||||
|
||||
package com.tarisan.persistencia;
|
||||
|
||||
import com.tarisan.log.*;
|
||||
|
||||
/**
|
||||
* Parámetros de conexión a la base de datos vía ODBC.
|
||||
* @author <a href="mailto:sistemas@imqnavarra.com">Dpto. Informática</a>.
|
||||
* @version 1.0, 24/09/2003
|
||||
*/
|
||||
public class OdbcParametros extends PersistenciaParametros
|
||||
{
|
||||
|
||||
/**
|
||||
* Inicialización de los parámetros de la base de datos.
|
||||
*/
|
||||
public static void inicializarParametros()
|
||||
{
|
||||
}
|
||||
|
||||
static
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.INFO, "Inicialización de los parámetros de conexión a ODBC");
|
||||
driverJdbc = "sun.jdbc.odbc.JdbcOdbcDriver";
|
||||
protocolo = "jdbc:odbc:";
|
||||
cadenaConexion = generarCadenaConexion();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creación de la cadena de conexión a la base de datos vía ODBC.
|
||||
* @return El String con la cadena de conexión.
|
||||
*/
|
||||
private static String generarCadenaConexion()
|
||||
{
|
||||
StringBuffer cadenaConexion = new StringBuffer();
|
||||
cadenaConexion.append(protocolo);
|
||||
cadenaConexion.append(dataSource);
|
||||
cadenaConexion.append(";");
|
||||
cadenaConexion.append("UID=");
|
||||
cadenaConexion.append(usuario);
|
||||
cadenaConexion.append(";");
|
||||
cadenaConexion.append("PWD=");
|
||||
cadenaConexion.append(password);
|
||||
|
||||
return cadenaConexion.toString();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
/**
|
||||
* @(#) 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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
/**
|
||||
* @(#) OracleParametros.java
|
||||
*/
|
||||
|
||||
package com.tarisan.persistencia;
|
||||
|
||||
import com.tarisan.control.ParametrosConfiguracion;
|
||||
import com.tarisan.log.*;
|
||||
|
||||
/**
|
||||
* Parámetros de conexión a la base de datos Oracle.
|
||||
* @author <a href="mailto:sistemas@imqnavarra.com">Dpto. Informática</a>.
|
||||
* @version 1.0, 24/09/2003
|
||||
*/
|
||||
public class OracleParametros extends PersistenciaParametros
|
||||
{
|
||||
|
||||
/**
|
||||
* Inicialización de los parámetros de la base de datos.
|
||||
*/
|
||||
public static void inicializarParametros()
|
||||
{
|
||||
}
|
||||
|
||||
static
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.INFO, "Inicialización de los parámetros de conexión a Oracle");
|
||||
driverJdbc = "oracle.jdbc.driver.OracleDriver";
|
||||
protocolo = "jdbc:oracle:thin:";
|
||||
// driverJdbc = "net.sourceforge.jtds.jdbc.driver";
|
||||
// driverJdbc = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
|
||||
cadenaConexion = generarCadenaConexion();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creación de la cadena de conexión a la base de datos.
|
||||
* @return El String con la cadena de conexión.
|
||||
*/
|
||||
private static String generarCadenaConexion()
|
||||
{
|
||||
|
||||
String url = new String();
|
||||
if(tipoServidorOracle.equalsIgnoreCase("11g_rac"))
|
||||
{
|
||||
String cadena_rac = new String();
|
||||
cadena_rac="jdbc:oracle:thin:"+ usuario +"/"+ password +"@(DESCRIPTION=(LOAD_BALANCE=yes)(ADDRESS=(PROTOCOL=TCP)(HOST=";
|
||||
// cadena_rac=cadena_rac+"192.168.2.225";
|
||||
cadena_rac=cadena_rac+maquina;
|
||||
cadena_rac=cadena_rac+")(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=";
|
||||
// cadena_rac=cadena_rac+"192.168.2.226";
|
||||
cadena_rac=cadena_rac+maquina2;
|
||||
// cadena_rac=cadena_rac+")(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=";
|
||||
cadena_rac = cadena_rac+")(PORT=1521)) (CONNECT_DATA=(FAILOVER_MODE=(TYPE=select)(METHOD=basic)(RETRIES=180)(DELAY=5))(SERVICE_NAME=";
|
||||
// cadena_rac=cadena_rac+"csmreal1.grupoimq.local";
|
||||
cadena_rac=cadena_rac+instancia;
|
||||
cadena_rac=cadena_rac+")))";
|
||||
url = cadena_rac;
|
||||
LogTarisan.logger.log(NivelLog.INFO,url);
|
||||
}else if(tipoServidorOracle.equalsIgnoreCase("11g_norac"))
|
||||
{
|
||||
String cadena_rac = new String();
|
||||
cadena_rac="jdbc:oracle:thin:"+ usuario +"/"+ password +"@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST="+ maquina +")(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME="+ instancia +")))";
|
||||
url = cadena_rac;
|
||||
LogTarisan.logger.log(NivelLog.INFO,url);
|
||||
}
|
||||
else
|
||||
{
|
||||
StringBuffer cadenaConexion = new StringBuffer();
|
||||
cadenaConexion.append(protocolo);
|
||||
cadenaConexion.append(usuario);
|
||||
cadenaConexion.append("/");
|
||||
cadenaConexion.append(password);
|
||||
cadenaConexion.append("@");
|
||||
cadenaConexion.append(maquina);
|
||||
cadenaConexion.append(":");
|
||||
cadenaConexion.append(puerto);
|
||||
cadenaConexion.append(":");
|
||||
cadenaConexion.append(instancia);
|
||||
LogTarisan.logger.log(NivelLog.INFO,cadenaConexion.toString());
|
||||
url = cadenaConexion.toString();
|
||||
}
|
||||
//return cadenaConexion.toString();
|
||||
return url;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
/**
|
||||
* @(#) PersistenciaParametros.java
|
||||
*/
|
||||
|
||||
|
||||
package com.tarisan.persistencia;
|
||||
|
||||
/**
|
||||
* Parámetros de conexión a cualquier base de datos.
|
||||
* @author <a href="mailto:sistemas@imqnavarra.com">Dpto. Informática</a>
|
||||
* @version 1.0, 24/09/2003
|
||||
*/
|
||||
public class PersistenciaParametros
|
||||
{
|
||||
|
||||
/**
|
||||
* Número de dígitos decimales que se van a mostrar.
|
||||
*/
|
||||
public static int decimales;
|
||||
|
||||
/**
|
||||
* Formato en que se van a mostrar los campos fecha de la aplicación.
|
||||
*/
|
||||
public static String formatoFechas;
|
||||
|
||||
/**
|
||||
* Cadena con el DataStore correspondiente a la base de datos Oracle 8i.
|
||||
*/
|
||||
public static final String ORACLE = "com.tarisan.persistencia.OracleDataStore";
|
||||
|
||||
/**
|
||||
* Cadena con el DataStore correspondiente a base de datos accedidas vía ODBC.
|
||||
*/
|
||||
public static final String ODBC = "com.tarisan.persistencia.OdbcDataStore";
|
||||
|
||||
/**
|
||||
* Cadena con el DataStore correspondiente a la base de datos Microsoft SQLServer.
|
||||
*/
|
||||
public static final String SQLSERVER = "com.tarisan.persistencia.SqlserverDataStore";
|
||||
|
||||
/**
|
||||
* Nombre de usuario de la base de datos.
|
||||
*/
|
||||
public static String usuario;
|
||||
|
||||
/**
|
||||
* Contraseña de usuario de la base de datos.
|
||||
*/
|
||||
public static String password;
|
||||
|
||||
/**
|
||||
* Nombre (o dirección IP) de la máquina donde está la base de datos.
|
||||
*/
|
||||
public static String maquina;
|
||||
|
||||
/**
|
||||
* Nombre (o dirección IP) de la segunda máquina donde está la base de datos (usamos RAC)
|
||||
*/
|
||||
public static String maquina2;
|
||||
|
||||
|
||||
/**
|
||||
* Número del puerto de la máquina donde está la base de datos.
|
||||
*/
|
||||
public static int puerto;
|
||||
|
||||
|
||||
/**
|
||||
* Nombre de la instancia donde está la base de datos.
|
||||
*/
|
||||
public static String instancia;
|
||||
|
||||
|
||||
/**
|
||||
* Driver JDBC de conexión a la base de datos.
|
||||
*/
|
||||
public static String driverJdbc;
|
||||
|
||||
/**
|
||||
* Protocolo de conexión a la base de datos.
|
||||
*/
|
||||
public static String protocolo;
|
||||
|
||||
|
||||
/**
|
||||
* Nombre de la fuente de datos de la base de datos.
|
||||
*/
|
||||
public static String dataSource;
|
||||
|
||||
|
||||
/**
|
||||
* Cadena de conexión a la base de datos.
|
||||
*/
|
||||
public static String cadenaConexion;
|
||||
|
||||
/**
|
||||
* Cadena de conexión a la base de datos HIS.
|
||||
*/
|
||||
public static String cadenaConexionHis;
|
||||
|
||||
/**
|
||||
* Usamos la conexión al RAC 11G o a la SingleInstance 10G
|
||||
*/
|
||||
public static String tipoServidorOracle;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public static String ruta_pdfs;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user