private List<Log> listarLogsPorConsulta(String sql) throws DataException { List<Log> lista = new ArrayList<Log>(); try { Statement s = BDUtil.getConexao().createStatement(); ResultSet r = s.executeQuery(sql); while (r.next()) { Log l = new Log(); l.setIdLog(r.getInt("idLog")); l.setChaveUnica(r.getString("chaveUnica")); int tipoOp = r.getInt("tipoOperacao"); Log.TipoOperacao tipoOperacao = null; if (tipoOp == Log.TipoOperacao.CADASTRO.ordinal()) { tipoOperacao = Log.TipoOperacao.CADASTRO; } else if (tipoOp == Log.TipoOperacao.ALTERACAO.ordinal()) { tipoOperacao = Log.TipoOperacao.ALTERACAO; } else if (tipoOp == Log.TipoOperacao.DELECAO.ordinal()) { tipoOperacao = Log.TipoOperacao.DELECAO; } else if (tipoOp == Log.TipoOperacao.ADICAO_CANTOR_A_MUSICA.ordinal()) { tipoOperacao = Log.TipoOperacao.ADICAO_CANTOR_A_MUSICA; } else if (tipoOp == Log.TipoOperacao.ALTERACAO_ARQUIVO_MUSICA.ordinal()) { tipoOperacao = Log.TipoOperacao.ALTERACAO_ARQUIVO_MUSICA; } l.setTipoOperacao(tipoOperacao); l.setClasseObjeto(r.getString("classeObjeto")); l.setChaveUnicaObjeto(r.getString("chaveUnicaObjeto")); ByteArrayInputStream bais = new ByteArrayInputStream((byte[]) r.getObject("objeto")); ObjectInputStream ois; try { ois = new ObjectInputStream(bais); l.setObjeto(ois.readObject()); ois.close(); bais.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } l.setData(new Date(r.getTimestamp("data").getTime())); lista.add(l); } r.close(); s.close(); return lista; } catch (SQLException e) { e.printStackTrace(); throw new DataException("Não foi possível realizar a operação"); } }