Files
tarisan_gitea/Fuentes/com/tarisan/control/PersistenciaUsuario.java
T
2025-06-09 13:37:06 +02:00

691 lines
23 KiB
Java

/**
* @(#) PersistenciaUsuario.java
*/
package com.tarisan.control;
import com.tarisan.data.Tamedico;
import com.tarisan.data.Usuario;
import com.tarisan.excepcion.*;
import com.tarisan.log.*;
import com.tarisan.util.Utilidades;
import java.sql.*;
import java.util.Calendar;
import java.util.Vector;
/**
* Controla los accesos a la persistencia para la entidad <code>Usuario</code>.
* @author <a href="mailto:sistemas@imqnavarra.com">Dpto. Informática</a>.
* @version 1.0, 24/09/2003
*/
public class PersistenciaUsuario implements Constantes
{
/**
* El objeto <code>Paginacion</code> que controla el número de filas a mostrar por cada página.
*/
private Paginacion objPaginacion = new Paginacion();
/**
* Obtiene el valor del objeto <code>Paginacion</code> para saber que página se está visualizando.
* @return El objeto <code>Paginacion</code>
*/
public Paginacion getPaginacion()
{
return objPaginacion;
}
/**
* Selecciona el primer registro de la tabla TAMEDICO encontrado para el usuario conectado a la aplicación Tarisan.
* <br>Retorna uno de los siguientes objetos:<ul>
* <li><code>null</code>: si se produce algún error incontrolado</li>
* <li><code>Usuario</code>: el usuario correcto encontrado en la base de datos</li>
* <li><code>Integer</code>: el código de error correspondiente al proceso de autenticación</li>
* </ul>
* @param codigo El código de usuario introducido en la página de conexión.
* @param clave La clave de usuario introducida en la página de conexión.
* @return El objeto resultante del proceso de validación.
* @throws
*/
public Object seleccionar(int codigo, String clave) throws ExcepcionTarisan
{
Object retorno = null;
Usuario usuario = null;
StringBuffer sqlSelect = new StringBuffer();
Connection conexion = null;
try
{
sqlSelect.append("SELECT MEDICO");
sqlSelect.append(", NOMBRE");
sqlSelect.append(", APELLIDOS");
sqlSelect.append(", ESPECIALIDAD");
sqlSelect.append(", TARIFA");
sqlSelect.append(", NOMBRE_CAB");
sqlSelect.append(", DIRECCION_CAB");
sqlSelect.append(", POBLACION_CAB");
sqlSelect.append(", TELEFONO_CAB");
sqlSelect.append(", EMAIL_CAB");
sqlSelect.append(", COLEGIADO_CAB");
sqlSelect.append(", ESPECIALIDAD_CAB");
sqlSelect.append(", BLOQUEO_CLAVE");
sqlSelect.append(", FECHA_ULT_ACCESO");
sqlSelect.append(", FECHA_MODIF_CLAVE");
sqlSelect.append(", PASSWORD");
sqlSelect.append(" FROM TAMEDICO");
sqlSelect.append(" WHERE MEDICO = ?");
conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
Object aCondiciones[] = new Object[1];
aCondiciones[0] = Integer.valueOf(codigo);
String bloqueo = "";
Timestamp fecModifClave = null;
String password = "";
Calendar calHoy = null;
Calendar calInactividad = null;
Calendar calCaducidad = null;
Calendar calPreaviso = null;
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
while(rs.next())
{
String nombre = "";
if (rs.getString("NOMBRE") != null){
nombre = rs.getString("NOMBRE") + " ";
}
String ape = "";
if (rs.getString("APELLIDOS") != null){
ape = rs.getString("APELLIDOS");
}
String nombreCab = "";
if (rs.getString("NOMBRE_CAB") != null){
nombreCab = rs.getString("NOMBRE_CAB");
}
usuario = new Usuario();
usuario.setMedico(rs.getInt("MEDICO"));
usuario.setNombre(nombre + ape);
usuario.setEspecialidad(rs.getInt("ESPECIALIDAD"));
usuario.setTarifa(rs.getInt("TARIFA"));
usuario.setNombreCab(nombreCab);
usuario.setDireccionCab(rs.getString("DIRECCION_CAB"));
usuario.setPoblacionCab(rs.getString("POBLACION_CAB"));
usuario.setTelefonoCab(rs.getString("TELEFONO_CAB"));
usuario.setEmailCab(rs.getString("EMAIL_CAB"));
usuario.setColegiadoCab(rs.getString("COLEGIADO_CAB"));
usuario.setEspecialidadCab(rs.getString("ESPECIALIDAD_CAB"));
usuario.setFechaUltAcceso(rs.getTimestamp("FECHA_ULT_ACCESO"));
bloqueo = rs.getString("BLOQUEO_CLAVE");
fecModifClave = rs.getTimestamp("FECHA_MODIF_CLAVE");
password = rs.getString("PASSWORD");
}
rs.close();
//Primero: se calculan las fechas para su tratamiento posterior
calHoy = Calendar.getInstance();
if (usuario != null)
{
if(usuario.getFechaUltAcceso() != null)
{
//Cálculo de la fecha de fin de actividad de la clave
calInactividad = Calendar.getInstance();
calInactividad.setTime((java.util.Date)usuario.getFechaUltAcceso());
calInactividad.add(Calendar.DATE, ParametrosConfiguracion.diasActividad);
}
if(fecModifClave != null)
{
//Cálculo de la fecha de caducidad de la clave
calCaducidad = Calendar.getInstance();
calCaducidad.setTime((java.util.Date)fecModifClave);
calCaducidad.add(Calendar.DATE, ParametrosConfiguracion.diasCaducidad);
//Cálculo de la fecha de preaviso de caducidad de la clave
calPreaviso = Calendar.getInstance();
calPreaviso.setTime((java.util.Date)fecModifClave);
calPreaviso.add(Calendar.DATE, ParametrosConfiguracion.diasCaducidad - ParametrosConfiguracion.diasPreaviso);
}
}
//Segundo: se evalúa la selección del usuario realizada en la base de datos
if (usuario == null)
{
//El usuario no se ha encontrado en la base de datos
retorno = USUARIO_INEXISTENTE;
}
else
{
if(usuario.getFechaUltAcceso() == null)
{
//El usuario realiza el primer acceso a la aplicación
if(password.compareTo(clave) != 0)
{
//El usuario no existe (la clave sin encriptar en la base de datos no es la misma que la escrita en el formulario de login)
retorno = USUARIO_ERROR_CLAVE;
}
else
{
//El usuario existe y se le redigirá a la introducción de la nueva clave, para su encriptación
retorno = usuario;
}
}
else
{
if(password.compareTo(Utilidades.encripta(clave, String.valueOf(codigo))) != 0)
{
//El usuario no existe (la clave encriptada en la base de datos no es la misma que la escrita en el formulario de login)
retorno = USUARIO_ERROR_CLAVE;
}
else if((bloqueo != null) && (bloqueo.trim().toUpperCase().compareTo("S") == 0))
{
//El usuario está bloqueado
retorno = USUARIO_BLOQUEADO;
}
else if((calCaducidad != null) && calCaducidad.before(calHoy))
{
//El usuario se bloquea por haber excedido la fecha de caducidad
this.bloquearUsuario(codigo, calHoy);
retorno = USUARIO_CADUCADO;
}
else if((calPreaviso != null) && calPreaviso.before(calHoy) && calHoy.before(calCaducidad))
{
//Se muestra mensaje al usuario de cambio de clave por proximidad de la fecha de caducidad
usuario.setFechaCaducidad(new Date(calCaducidad.getTimeInMillis()));
retorno = usuario;
}
else if((calInactividad != null) && calInactividad.before(calHoy))
{
//El usuario está bloqueado por período de inactividad
this.bloquearUsuario(codigo, calHoy);
retorno = USUARIO_INACTIVO;
}
else
{
//El usuario introducido es correcto
retorno = usuario;
}
}
}
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado el usuario " + usuario + " de la tabla TAMEDICO (" + sqlSelect + ")");
}
catch(SQLException sqle)
{
usuario = null;
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de usuario: " + sqle + " (" + sqlSelect + ")");
throw new ExcepcionTarisan();
}
catch(Exception e)
{
usuario = null;
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de usuario: " + e + " (" + sqlSelect + ")");
throw new ExcepcionTarisan();
}
return retorno;
}
public Usuario seleccionar(int medico) throws ExcepcionTarisan
{
return this.seleccionar(medico, 0);
}
/**
* Selecciona el primer registro de la tabla TAMEDICO encontrado para el usuario conectado a la aplicación Tarisan.
* @param medico El código de usuario introducido en la página de conexión.
* @param especialidad El código de especialidad del usuario conectado.
* @return El <code>Usuario</code> encontrado en la tabla de médicos,
* un objeto vacío <code>Usuario</code> si no se cumplen las condiciones de búsqueda o null si se produce alguna excepción.
* @throws
*/
public Usuario seleccionar(int medico, int especialidad) throws ExcepcionTarisan
{
Usuario usuario = null;
StringBuffer sqlSelect = new StringBuffer();
try
{
sqlSelect.append("SELECT MEDICO");
sqlSelect.append(", NOMBRE");
sqlSelect.append(", APELLIDOS");
sqlSelect.append(", ESPECIALIDAD");
sqlSelect.append(", TARIFA");
sqlSelect.append(", NOMBRE_CAB");
sqlSelect.append(", DIRECCION_CAB");
sqlSelect.append(", POBLACION_CAB");
sqlSelect.append(", TELEFONO_CAB");
sqlSelect.append(", EMAIL_CAB");
sqlSelect.append(", COLEGIADO_CAB");
sqlSelect.append(", ESPECIALIDAD_CAB");
sqlSelect.append(" FROM TAMEDICO");
sqlSelect.append(" WHERE MEDICO = ?");
if(especialidad >0)
sqlSelect.append(" AND ESPECIALIDAD = ?");
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
Object aCondiciones[] = null;
if(especialidad > 0)
{
aCondiciones = new Object[2];
aCondiciones[0] = Integer.valueOf(medico);
aCondiciones[1] = Integer.valueOf(especialidad);
}
else
{
aCondiciones = new Object[1];
aCondiciones[0] = Integer.valueOf(medico);
}
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
while(rs.next())
{
usuario = new Usuario();
usuario.setMedico(rs.getInt("MEDICO"));
usuario.setNombre(rs.getString("NOMBRE") + " " + rs.getString("APELLIDOS"));
usuario.setEspecialidad(rs.getInt("ESPECIALIDAD"));
usuario.setTarifa(rs.getInt("TARIFA"));
usuario.setNombreCab(rs.getString("NOMBRE_CAB"));
usuario.setDireccionCab(rs.getString("DIRECCION_CAB"));
usuario.setPoblacionCab(rs.getString("POBLACION_CAB"));
usuario.setTelefonoCab(rs.getString("TELEFONO_CAB"));
usuario.setEmailCab(rs.getString("EMAIL_CAB"));
usuario.setColegiadoCab(rs.getString("COLEGIADO_CAB"));
usuario.setEspecialidadCab(rs.getString("ESPECIALIDAD_CAB"));
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado el usuario " + usuario + " de la tabla TAMEDICO (" + sqlSelect + ")");
}
catch(SQLException sqle)
{
usuario = null;
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de usuario: " + sqle + " (" + sqlSelect + ")");
throw new ExcepcionTarisan();
}
return usuario;
}
/**
* Modifica el registro correspondiente al usuario conectado marcándolo como bloqueado.
* <br>Escribe 'S' en el campo BLOQUEO_CLAVE de la tabla TAMEDICO.
* @param codigo El código de usuario que se intenta conectar.
* @param fechaAcceso Fecha en la que el usuario ha realizado el acceso a la aplicación. Utilizado para introducir un nuevo registro en la tabla de seguimiento TAREGLOG.
* @return El resultado de la actualización en base de datos.
* @throws
*/
public boolean bloquearUsuario(int codigo, Calendar fechaAcceso) throws ExcepcionTarisan
{
boolean resultado = true;
StringBuffer sqlUpdate = new StringBuffer();
sqlUpdate.append("UPDATE TAMEDICO");
sqlUpdate.append(" SET BLOQUEO_CLAVE = ?");
sqlUpdate.append(" WHERE MEDICO = ?");
try
{
Object[] aValores = new Object[1];
aValores[0] = "S";
Object[] aCondiciones = new Object[1];
aCondiciones[0] = Integer.valueOf(codigo);
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ParametrosConfiguracion.dataStore.iniciarTransaccion(conexion);
try
{
//dejamos al usuario bloqueado
LogTarisan.logger.log(NivelLog.DEBUG, "Llega 332: "+sqlUpdate.toString());
resultado = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate.toString(), aValores, aCondiciones, conexion);
LogTarisan.logger.log(NivelLog.DEBUG, "Llega 334, ha actualizado ");
/////////////////////////////////////////////////////////////////////
//insertamos un registro en la tabla tareglog para indicar los movimientos realizados por el usuario
Timestamp tsFechaAcceso = new Timestamp(fechaAcceso.getTimeInMillis());
PersistenciaTareglog perTareglog = new PersistenciaTareglog();
//obtenemos el ultimo valor del campo correlativo de la tabla tareglog.
//Este campo es un numero correlativo utilizado para diferenciar las claves.
int intUltimoValorCorrelativo = perTareglog.obtenerUltimoValorCorrelativo(codigo, tsFechaAcceso);
perTareglog.insertarLog(codigo, tsFechaAcceso, Calendar.getInstance(), intUltimoValorCorrelativo + 1, "TAMEDICO", Utilidades.obtenerSentenciaSQL(sqlUpdate, aValores, aCondiciones), "", conexion);
/////////////////////////////////////////////////////////////////////
//las actualizaciones han ido bien. Confirmamos la transaccion
ParametrosConfiguracion.dataStore.confirmarTransaccion(conexion);
}
catch (ExcepcionTarisan ex)
{
ParametrosConfiguracion.dataStore.deshacerTransaccion(conexion);
LogTarisan.logger.log(NivelLog.ERROR, "ExcepcionTarisan: " + ex.getMensaje());
throw (ExcepcionTarisan)ex;
}
catch (Exception ex)
{
ParametrosConfiguracion.dataStore.deshacerTransaccion(conexion);
LogTarisan.logger.log(NivelLog.ERROR, "Exception: " + ex.getMessage());
throw new ExcepcionTarisan(ex.getMessage());
}
finally
{
//liberamos la conexion
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
}
catch(ExcepcionTarisan ex)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en el bloqueo de usuario: " + ex + " (" + sqlUpdate + ")");
throw ex;
}
return true;
}
/**
* Actualiza la fecha de último acceso a la aplicación una vez conectado con éxito.
* <br>Escribe la fecha y hora actual en el campo FECHA_ULT_ACCESO de la tabla TAMEDICO.
* @param codigo El código de usuario a modificar.
* @param calHoy La fecha actual a poner como fecha de último acceso.
* @return El resultado de la actualización en base de datos.
* @throws
*/
public boolean actualizarFechaAcceso(int codigo, Calendar calHoy) throws ExcepcionTarisan
{
boolean resultado = true;
Connection conexion = null;
StringBuffer sqlUpdate = new StringBuffer();
sqlUpdate.append("UPDATE TAMEDICO");
sqlUpdate.append(" SET FECHA_ULT_ACCESO = ?");
sqlUpdate.append(" WHERE MEDICO = ?");
try
{
Object[] aValores = new Object[1];
aValores[0] = new Timestamp(calHoy.getTimeInMillis());
Object[] aCondiciones = new Object[1];
aCondiciones[0] = Integer.valueOf(codigo);
resultado = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate.toString(), aValores, aCondiciones);
}
catch(ExcepcionTarisan ex)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la actualización de la fecha de acceso de usuario: " + ex + " (" + sqlUpdate + ")");
throw ex;
}
return true;
}
public Vector listado_usuarios(int pagina, String strCampoApellido)
{
int elementosPaginacion = 1;
Vector vResultado = new Vector();
Tamedico tamedico = null;
StringBuffer strSql = new StringBuffer();
strSql.append("SELECT APELLIDOS, NOMBRE, MEDICO");
strSql.append(" FROM TAMEDICO");
Object aCondiciones[] = null;
//comprobamos si se trata de una busqueda por apellido
if (!strCampoApellido.equalsIgnoreCase("")) //la sql tiene una condición de búsqueda
{
if (strCampoApellido.endsWith("*"))
{
strCampoApellido=strCampoApellido.replace('*', '%');
}
else
{
strCampoApellido="%" + strCampoApellido + "%";
}
aCondiciones = new Object[1];
aCondiciones[0] = strCampoApellido;
strSql.append(" WHERE APELLIDOS LIKE ?");
}
else
{
aCondiciones = new Object[0];
}
strSql.append(" ORDER BY APELLIDOS, NOMBRE");
try
{
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
objPaginacion.inicializarPaginacion(rs);
if (objPaginacion.getNumeroRegistrosTotales()!=0)
{
objPaginacion.realizarPaginacion(rs, pagina);
while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
{
tamedico = new Tamedico();
tamedico.setApellidos(rs.getString("APELLIDOS"));
tamedico.setMedico(rs.getInt("MEDICO"));
tamedico.setNombre(rs.getString("NOMBRE"));
vResultado.addElement(tamedico);
if (pagina != 0)
{
elementosPaginacion++;
}
}
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TAMEDICO (" + strSql.toString() + ")");
}
catch (ExcepcionTarisan sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
}
catch(SQLException sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
}
catch(Exception sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
}
return vResultado;
}
/**
* Selecciona los registros de la tabla TAMEDICO en función de la sentencia SELECT indicada.
* Retorna la lista con todos los usuarios de la aplicación.
* @param sqlSelect La sentencia SELECT de selección.
* @param pagina El número de página a mostrar.
* @param aCondiciones El array que contiene las condiciones utilizadas en la sentencia SELECT.
* @return El Vector con la lista de objetos <code>Tamedico</code> obtenidos.
* @throws
*/
public Vector seleccionar(String sqlSelect, int pagina, Object[] aCondiciones) throws ExcepcionTarisan
{
int elementosPaginacion = 1;
Vector vResultado = new Vector();
Tamedico tamedico = null;
try
{
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect, aCondiciones);
objPaginacion.inicializarPaginacion(rs);
if (objPaginacion.getNumeroRegistrosTotales()!=0)
{
objPaginacion.realizarPaginacion(rs, pagina);
while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
{
tamedico = new Tamedico();
tamedico.setApellidos(rs.getString("APELLIDOS"));
tamedico.setMedico(rs.getInt("MEDICO"));
tamedico.setNombre(rs.getString("NOMBRE"));
vResultado.addElement(tamedico);
if (pagina != 0)
{
elementosPaginacion++;
}
}
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TAMEDICO (" + sqlSelect + ")");
}
catch (ExcepcionTarisan sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
throw (ExcepcionTarisan)sqle;
}
catch(SQLException sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
throw new ExcepcionTarisan(sqle.getMessage());
}
catch(Exception sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
throw new ExcepcionTarisan(sqle.getMessage());
}
catch(Throwable sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
throw new ExcepcionTarisan(sqle.getMessage());
}
return vResultado;
}
public Object seleccionarSimulado(int codigo) throws ExcepcionTarisan
{
Object retorno = null;
Usuario usuario = null;
StringBuffer sqlSelect = new StringBuffer();
Connection conexion = null;
try
{
sqlSelect.append("SELECT MEDICO");
sqlSelect.append(", NOMBRE");
sqlSelect.append(", APELLIDOS");
sqlSelect.append(", ESPECIALIDAD");
sqlSelect.append(", TARIFA");
sqlSelect.append(", NOMBRE_CAB");
sqlSelect.append(", DIRECCION_CAB");
sqlSelect.append(", POBLACION_CAB");
sqlSelect.append(", TELEFONO_CAB");
sqlSelect.append(", EMAIL_CAB");
sqlSelect.append(", COLEGIADO_CAB");
sqlSelect.append(", ESPECIALIDAD_CAB");
sqlSelect.append(", BLOQUEO_CLAVE");
sqlSelect.append(", FECHA_ULT_ACCESO");
sqlSelect.append(", FECHA_MODIF_CLAVE");
sqlSelect.append(", PASSWORD");
sqlSelect.append(" FROM TAMEDICO");
sqlSelect.append(" WHERE MEDICO = ?");
conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
Object aCondiciones[] = new Object[1];
aCondiciones[0] = Integer.valueOf(codigo);
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
while(rs.next())
{
String nombre = "";
if (rs.getString("NOMBRE") != null){
nombre = rs.getString("NOMBRE") + " ";
}
String ape = "";
if (rs.getString("APELLIDOS") != null){
ape = rs.getString("APELLIDOS");
}
String nombreCab = "";
if (rs.getString("NOMBRE_CAB") != null){
nombreCab = rs.getString("NOMBRE_CAB");
}
usuario = new Usuario();
usuario.setMedico(rs.getInt("MEDICO"));
usuario.setNombre(nombre + ape);
usuario.setEspecialidad(rs.getInt("ESPECIALIDAD"));
usuario.setTarifa(rs.getInt("TARIFA"));
usuario.setNombreCab(nombreCab);
usuario.setDireccionCab(rs.getString("DIRECCION_CAB"));
usuario.setPoblacionCab(rs.getString("POBLACION_CAB"));
usuario.setTelefonoCab(rs.getString("TELEFONO_CAB"));
usuario.setEmailCab(rs.getString("EMAIL_CAB"));
usuario.setColegiadoCab(rs.getString("COLEGIADO_CAB"));
usuario.setEspecialidadCab(rs.getString("ESPECIALIDAD_CAB"));
usuario.setFechaUltAcceso(rs.getTimestamp("FECHA_ULT_ACCESO"));
}
rs.close();
retorno = usuario;
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado el usuario " + usuario + " de la tabla TAMEDICO (" + sqlSelect + ")");
}
catch(SQLException sqle)
{
usuario = null;
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de usuario: " + sqle + " (" + sqlSelect + ")");
throw new ExcepcionTarisan();
}
catch(Exception e)
{
usuario = null;
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de usuario: " + e + " (" + sqlSelect + ")");
throw new ExcepcionTarisan();
}
return retorno;
}
}