/** * @(#) 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 Taregmed. * @author Dpto. Informática. * @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 Taregmed 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; } }