public Collection<Servicio> obtenerServiciosUsuario(Integer idusuario) throws DAOException { log.info("obtenerServiciosUsuario(" + idusuario + ")"); Connection cons = null; PreparedStatement stmt = null; PreparedStatement stmt2 = null; ResultSet result = null; Collection<Servicio> servicios = new ArrayList<Servicio>(); Servicio servicio = null; try { String query = "SELECT cvus.idservicio,cvus.columna,cvus.posicion,cvus.estado,cvus.visible," + "cvsm.nombre,cvsm.permiso_minimizar,cvsm.permiso_eliminar " + "FROM cv_servicio_maestro cvsm, cv_servicio_usuario cvus " + "WHERE cvsm.idservicio=cvus.idservicio AND cvsm.estado='1' AND cvus.estado='1' " + "AND cvus.idusuario=? " + "ORDER BY cvus.columna,cvus.posicion"; cons = dataSource.getConnection(); stmt = cons.prepareStatement(query); stmt.setInt(1, idusuario); result = stmt.executeQuery(); if (!result.isBeforeFirst()) { query = "INSERT INTO cv_servicio_usuario(idusuario,idservicio,columna,posicion,visible,estado) " + "SELECT ?,idservicio,columna,posicion,1,estado " + "FROM cv_servicio_maestro;"; stmt2 = cons.prepareStatement(query); stmt2.setInt(1, idusuario); stmt2.executeUpdate(); result = stmt.executeQuery(); } while (result.next()) { servicio = new Servicio(); servicio.setId(result.getString("idservicio")); servicio.setNombre(result.getString("nombre")); servicio.setColumna(result.getInt("columna")); servicio.setPosicion(result.getInt("posicion")); servicio.setEstado(result.getInt("estado")); servicio.setVisible(result.getInt("visible")); servicio.setPermisoMinimizar(result.getInt("permiso_minimizar")); servicio.setPermisoEliminar(result.getInt("permiso_eliminar")); servicios.add(servicio); } } catch (SQLException e) { throw new DAOException(e.toString()); } catch (Exception e) { throw new DAOException(e.toString()); } finally { closeResultSet(result); closeStatement(stmt2); closeStatement(stmt); closeConnection(cons); } return servicios; }
public Collection<Servicio> obtenerServiciosGestionar() throws DAOException { log.info("obtenerServiciosGestionar()"); Connection cons = null; PreparedStatement stmt = null; ResultSet result = null; Collection<Servicio> servicios = new ArrayList<Servicio>(); Servicio servicio = null; try { String query = "SELECT idservicio,nombre,columna,posicion,permiso_minimizar,permiso_eliminar,estado " + "FROM cv_servicio_maestro ORDER BY columna,posicion"; cons = dataSource.getConnection(); stmt = cons.prepareStatement(query); result = stmt.executeQuery(); while (result.next()) { servicio = new Servicio(); servicio.setId(result.getString("idservicio")); servicio.setNombre(result.getString("nombre")); servicio.setColumna(result.getInt("columna")); servicio.setPosicion(result.getInt("posicion")); servicio.setPermisoMinimizar(result.getInt("permiso_minimizar")); servicio.setPermisoEliminar(result.getInt("permiso_eliminar")); servicio.setEstado(result.getInt("estado")); servicios.add(servicio); } } catch (SQLException e) { throw new DAOException(e.toString()); } catch (Exception e) { throw new DAOException(e.toString()); } finally { closeResultSet(result); closeStatement(stmt); closeConnection(cons); } return servicios; }
public void grabarPortal(Integer idusuario, Collection<Servicio> servicios) throws DAOException { log.info("grabarPortal(" + idusuario + ", " + servicios + ")"); Connection cons = null; PreparedStatement stmt = null; try { String query = "update cv_servicio_usuario set columna=?, posicion=? where idusuario=? and idservicio=?"; cons = dataSource.getConnection(); cons.setAutoCommit(false); stmt = cons.prepareStatement(query); stmt.setInt(3, idusuario); for (Servicio servicio : servicios) { stmt.setInt(1, servicio.getColumna()); stmt.setInt(2, servicio.getPosicion()); stmt.setString(4, servicio.getId()); if (stmt.executeUpdate() != 1) { throw new DAOException( "No se pudo actualizar: " + servicio.getId() + "-" + servicio.getPosicion()); } } cons.commit(); } catch (SQLException e) { log.error(e); throw new DAOException(e.toString()); } catch (Exception e) { log.error(e); throw new DAOException(e.toString()); } finally { try { cons.rollback(); } catch (SQLException e) { } closeStatement(stmt); closeConnection(cons); } }