Files
2025-06-09 13:37:06 +02:00

131 lines
4.0 KiB
Java

/**
* @(#) PersistenciaTaregmed.java
*/
package com.tarisan.control;
import com.tarisan.data.Taregmed;
import com.tarisan.excepcion.*;
import com.tarisan.log.*;
import java.sql.*;
import java.util.Calendar;
/**
* Controla los accesos a la persistencia para la entidad <code>Taregmed</code>.
* @author <a href="mailto:sistemas@imqnavarra.com">Dpto. Informática</a>.
* @version 1.0, 24/09/2003
*/
public class PersistenciaTaregmed
{
/**
* Selecciona el primer registro de la tabla TAREGMED encontrado para el médico conectado a la aplicación Tarisan.
* @param medico El código del médico conectado a la aplicación.
* @param fecha La fecha en la que se realiza los intentos de conexión a la aplicación.
* @return El objeto <code>Taregmed</code> encontrado en la tabla de registros de accesos de médicos o null si se produce alguna excepción o no encuentra nada.
* @throws
*/
public Taregmed seleccionar(int medico, Timestamp fecha) throws ExcepcionTarisan
{
Taregmed taregmed = null;
StringBuffer sqlSelect = new StringBuffer();
try
{
sqlSelect.append("SELECT RESULTADO");
sqlSelect.append(" FROM TAREGMED");
sqlSelect.append(" WHERE MEDICO = ?");
sqlSelect.append(" AND FECHA = ?");
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
Object aCondiciones[] = new Object[2];
aCondiciones[0] = Integer.valueOf(medico);
aCondiciones[1] = fecha;
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
while(rs.next())
{
taregmed = new Taregmed();
taregmed.setMedico(medico);
taregmed.setFecha(fecha);
taregmed.setResultado(rs.getString("RESULTADO"));
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado el " + taregmed + " de la tabla TAREGMED (" + sqlSelect + ")");
}
catch(SQLException sqle)
{
taregmed = null;
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de taregmed: " + sqle + " (" + sqlSelect + ")");
throw new ExcepcionTarisan();
}
return taregmed;
}
/**
* Inserta el registro correspondiente al médico conectado marcándolo como bloqueado.
* @param medico El código del médico conectado a la aplicación.
* @param fecha La fecha en la que se ha intentado conectar a la aplicación.
* @param resultado Parámetro que indica si la conexión a la aplicación ha sido correcta o incorrecta.
* @return El resultado de la actualización en base de datos.
* @throws
*/
public boolean insertar(int medico, Calendar calendario, String resultado) throws ExcepcionTarisan
{
boolean res = true;
StringBuffer sqlInsert = null;
try
{
sqlInsert = new StringBuffer();
sqlInsert.append("INSERT INTO TAREGMED");
sqlInsert.append(" (MEDICO, FECHA, RESULTADO)");
sqlInsert.append(" VALUES(?, ?, ?)");
Object[] aValores = new Object[3];
aValores[0] = Integer.valueOf(medico);
aValores[1] = new Timestamp(calendario.getTimeInMillis());
aValores[2] = resultado;
res = ParametrosConfiguracion.dataStore.insertar(sqlInsert.toString(), aValores);
}
catch (ExcepcionTarisan sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la inserción de TAREGMED: " + sqle + " (" + sqlInsert + ")");
throw (ExcepcionTarisan)sqle;
}
catch(Exception sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la inserción de TAREGMED: " + sqle + " (" + sqlInsert + ")");
throw new ExcepcionTarisan(sqle.getMessage());
}
catch(Throwable sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la inserción de TAREGMED: " + sqle + " (" + sqlInsert + ")");
throw new ExcepcionTarisan(sqle.getMessage());
}
return res;
}
/**
* Insertar un registro, para mantener una tabla con los usuarios conectados en un momento determinado (concurrencia)
* @param medico
* @param calendario
* @return
*/
public boolean conectar(int medico, Calendar calendario)
{
boolean res = true;
return res;
}
}