public List<Utilizacao> getByComputador(Utilizacao c) {
    try {
      List<Utilizacao> listUtilizacao = new ArrayList<Utilizacao>();
      String filtro = "";

      if (c.getDataHoraLogoff() == null) {
        filtro += " AND dataHoraLogoff IS NULL";
      }

      if (c.getMatriculaUtilizador() != null) {
        filtro += " AND matriculaUtilizador ='" + c.getMatriculaUtilizador() + "'";
      }

      if (c.getComputador() != null) {
        filtro += " AND idComputador  = '" + c.getComputador().getIdComputador() + "'";
      }

      PreparedStatement stmt =
          this.connection.prepareStatement("select * from utilizacao Where 1 " + filtro);

      ResultSet rs = stmt.executeQuery();

      while (rs.next()) {
        // criando o objeto Contato
        Utilizacao utilizacao = new Utilizacao();
        utilizacao.setCodUtilizacao(rs.getInt("codUtilizacao"));
        utilizacao.setMatriculaUtilizador(rs.getString("matriculaUtilizador"));
        utilizacao.setNomeUtilizador(rs.getString("nomeUtilizador"));
        ComputadorDao labdao = new ComputadorDao();
        utilizacao.setComputador(labdao.find(rs.getInt("idComputador")));
        utilizacao.setEnderecoIPV4(rs.getString("enderecoIPV4"));

        // montando a data através do Calendar
        if (rs.getTimestamp("dataHoraLogon") != null) {
          Calendar data = Calendar.getInstance();
          data.setTime(rs.getTimestamp("dataHoraLogon"));
          utilizacao.setDataHoraLogon(data);
        }

        // montando a data através do Calendar
        if (rs.getTimestamp("dataHoraLogoff") != null) {
          Calendar data2 = Calendar.getInstance();
          data2.setTime(rs.getTimestamp("dataHoraLogoff"));
          utilizacao.setDataHoraLogon(data2);
        }
        // adiciona objeto atual à lista
        listUtilizacao.add(utilizacao);
      }
      rs.close();
      stmt.close();
      return listUtilizacao;
    } catch (SQLException e) {
      throw new DAOException(e);
    }
  }
  public Utilizacao UltimoRegistroInserido() {
    try {
      PreparedStatement stmt =
          this.connection
              // .prepareStatement("select * from utilizacao WHERE idUtilizacao=(select
              // LAST_INSERT_ID(idUtilizacao)) from utilizacao)");
              .prepareStatement("select * from utilizacao ORDER BY codUtilizacao Desc limit 1");

      ResultSet rs = stmt.executeQuery();

      while (rs.next()) {
        Utilizacao utilizacao = new Utilizacao();
        utilizacao.setCodUtilizacao(rs.getInt("codUtilizacao"));
        utilizacao.setMatriculaUtilizador(rs.getString("matriculaUtilizador"));
        utilizacao.setNomeUtilizador(rs.getString("nomeUtilizador"));
        ComputadorDao labdao = new ComputadorDao();
        utilizacao.setComputador(labdao.find(rs.getInt("idComputador")));
        utilizacao.setEnderecoIPV4(rs.getString("enderecoIPV4"));

        // montando a data através do Calendar
        if (rs.getTimestamp("dataHoraLogon") != null) {
          Calendar data = Calendar.getInstance();
          data.setTime(rs.getTimestamp("dataHoraLogon"));
          utilizacao.setDataHoraLogon(data);
        }

        // montando a data através do Calendar
        if (rs.getTimestamp("dataHoraLogoff") != null) {
          Calendar data2 = Calendar.getInstance();
          data2.setTime(rs.getTimestamp("dataHoraLogoff"));
          utilizacao.setDataHoraLogon(data2);
        }

        rs.close();
        stmt.close();
        return utilizacao;
      }
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return null;
  }
  public Utilizacao find(long id) {
    try {
      PreparedStatement stmt =
          this.connection.prepareStatement("select * from utilizacao where codUtilizacao=?");
      stmt.setLong(1, Long.valueOf(id));

      ResultSet rs = stmt.executeQuery();

      while (rs.next()) {
        Utilizacao utilizacao = new Utilizacao();
        utilizacao.setCodUtilizacao(rs.getInt("codUtilizacao"));
        utilizacao.setMatriculaUtilizador(rs.getString("matriculaUtilizador"));
        utilizacao.setNomeUtilizador(rs.getString("nomeUtilizador"));
        ComputadorDao labdao = new ComputadorDao();
        utilizacao.setComputador(labdao.find(rs.getInt("idComputador")));
        utilizacao.setEnderecoIPV4(rs.getString("enderecoIPV4"));

        // montando a data através do Calendar
        if (rs.getTimestamp("dataHoraLogon") != null) {
          Calendar data = Calendar.getInstance();
          data.setTime(rs.getTimestamp("dataHoraLogon"));
          utilizacao.setDataHoraLogon(data);
        }

        // montando a data através do Calendar
        if (rs.getTimestamp("dataHoraLogoff") != null) {
          Calendar data2 = Calendar.getInstance();
          data2.setTime(rs.getTimestamp("dataHoraLogoff"));
          utilizacao.setDataHoraLogon(data2);
        }

        rs.close();
        stmt.close();
        return utilizacao;
      }

    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return null;
  }
  public List<Utilizacao> getListaFiltrada(Utilizacao c) {
    try {
      List<Utilizacao> listUtilizacao = new ArrayList<Utilizacao>();
      String filtro = "";

      // checa os filtros passados (se não for vazio vai adicionando à
      // string Filtro
      if (!c.getMatriculaUtilizador().isEmpty()) {
        filtro += " AND matriculaUtilizador Like '%" + c.getMatriculaUtilizador() + "%'";
      }
      /*
       * SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
       * Date data = formatador.parse();
       *
       * Calendar dataCalendar = Calendar.getInstance();
       * dataCalendar.setTime(data);
       */
      if (c.getDataHoraLogon() != null) {
        SimpleDateFormat formatador = new SimpleDateFormat("yyyy/mm/dd");
        filtro += " AND dataHoraLogon  = '" + formatador.format(c.getDataHoraLogon()) + "'";
      }

      if (c.getComputador() != null) {
        filtro += " AND idComputador  = '" + c.getComputador().getIdComputador() + "'";
      }

      PreparedStatement stmt =
          this.connection.prepareStatement("select * from utilizacao Where 1 " + filtro);

      ResultSet rs = stmt.executeQuery();

      while (rs.next()) {
        // criando o objeto Contato
        Utilizacao utilizacao = new Utilizacao();
        utilizacao.setCodUtilizacao(rs.getInt("codUtilizacao"));
        utilizacao.setMatriculaUtilizador(rs.getString("matriculaUtilizador"));
        utilizacao.setNomeUtilizador(rs.getString("nomeUtilizador"));
        ComputadorDao labdao = new ComputadorDao();
        utilizacao.setComputador(labdao.find(rs.getInt("idComputador")));
        utilizacao.setEnderecoIPV4(rs.getString("enderecoIPV4"));

        // montando a data através do Calendar
        if (rs.getTimestamp("dataHoraLogon") != null) {
          Calendar data = Calendar.getInstance();
          data.setTime(rs.getTimestamp("dataHoraLogon"));
          utilizacao.setDataHoraLogon(data);
        }

        // montando a data através do Calendar
        if (rs.getTimestamp("dataHoraLogoff") != null) {
          Calendar data2 = Calendar.getInstance();
          data2.setTime(rs.getTimestamp("dataHoraLogoff"));
          utilizacao.setDataHoraLogon(data2);
        }
        // adiciona objeto atual à lista
        listUtilizacao.add(utilizacao);
      }
      rs.close();
      stmt.close();
      return listUtilizacao;
    } catch (SQLException e) {
      throw new DAOException(e);
    }
  }