131 lines
4.0 KiB
Java
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;
|
|
}
|
|
|
|
}
|