示例#1
0
  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;
  }