/** * @(#) PersistenciaTamedica.java */ package com.tarisan.control; import com.tarisan.data.Tamedica; import com.tarisan.log.*; import com.tarisan.util.Utilidades; import com.tarisan.excepcion.ExcepcionTarisan; import java.sql.*; import java.util.Vector; /** * Controla los accesos a la persistencia para la entidad Tamedica. * @author Dpto. Informática. * @version 1.0, 24/09/2003 */ public class PersistenciaTamedica { /** * El objeto Paginacion que controla el número de filas a mostrar por cada página. */ private Paginacion objPaginacion = new Paginacion(); /** * Obtiene el valor del objeto Paginacion para saber qué página se está visualizando. * @return El objeto Paginacion. */ public Paginacion getPaginacion() { return objPaginacion; } /** * Selecciona los registros de la tabla TAMEDICA en función de la sentencia SELECT indicada. * @param sqlSelect La sentencia SELECT de selección. * @param pagina Número de página a mostrar. * @param aCondiciones Array que contiene los parámetros utilizados en la sentencia SELECT. * @return El Vector con los registros seleccionados (todos pertenencientes a la clase Tamedica). * @throws */ public Vector seleccionar(String sqlSelect, int pagina, Object[] aCondiciones) throws ExcepcionTarisan { int elementosPaginacion=1; Vector vResultado = new Vector(); Tamedica tamedica = null; ResultSet rs = null; try { Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); if (aCondiciones==null || aCondiciones.length==0) rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect); else rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect, aCondiciones); objPaginacion.inicializarPaginacion(rs); if (objPaginacion.getNumeroRegistrosTotales()!=0) { objPaginacion.realizarPaginacion(rs, pagina); while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina())) { tamedica = new Tamedica(); tamedica.setDescripcion(rs.getString("DESCRIPCION")); tamedica.setCodigo(rs.getInt("CODIGO")); vResultado.addElement(tamedica); if (pagina!=0) //Se quiere realizar la paginacion elementosPaginacion++; } } rs.close(); ParametrosConfiguracion.dataStore.liberarConexion(conexion); LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TAMEDICA (" + sqlSelect + ")"); } catch (ExcepcionTarisan sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICA: " + sqle + " (" + sqlSelect + ")"); throw (ExcepcionTarisan)sqle; } catch(SQLException sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICA: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Exception sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICA: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Throwable sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICA: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } return vResultado; } public Vector listado_medicamentos(String nombre, int intPagina) { Vector resul = new Vector(); StringBuffer strSql = new StringBuffer(); Object [] aCondiciones = new Object[1]; String consulta = ""; strSql.append("SELECT CODIGO, DESCRIPCION"); strSql.append(" FROM TAMEDICA"); //comprobamos si se trata de una busqueda de medicamentos if (!nombre.equalsIgnoreCase("")) { if (nombre.endsWith("*")) nombre=nombre.replace('*', '%'); else nombre="%" + nombre +"%"; strSql.append(" WHERE DESCRIPCION LIKE ?"); aCondiciones[0] = new String(nombre); }else{ aCondiciones = new Object[0]; } strSql.append(" ORDER BY DESCRIPCION"); try { resul = this.seleccionar(strSql.toString(), intPagina, aCondiciones); consulta = Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones); } catch (ExcepcionTarisan e) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de Tamedica (listado_medicamentos): " + e + " (" + consulta + ")"); } return resul; } }