Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta executada duas vezes (por erro) em Java com valores indesejados


Perseguir anomalias nos dados é árduo, mas JFreeChart pode pelo menos tornar o resultado mais fácil de visualizar. Algumas heurísticas para testes:

  • Para verificar se as duplicatas presumidas em sua listagem tabular são realmente duplicadas, formate os carimbos de data e hora para incluir milissegundos, por exemplo, adicione um S para um SimpleDateFormat ou A para um DateTimeFormatter .

  • Para estudo, passe temporariamente a consulta diretamente para JDBCXYDataset e adicione um ORDER BY cláusula (não testada):
    jds.executeQuery(
          "SELECT Date_Heure, PV, SV FROM cmd3 "
        + "WHERE Date_Heure BETWEEN "
        + "2020-06-25 00:00:00 AND 2020-06-26 00:00:00 "
        + "ORDER BY Date_Heure");
    

  • Habilite dicas de ferramentas em seu ChartFactory , como você fez aqui , para ver valores de dados in situ . Isso pode sugerir condições adicionais para seu WHERE cláusula, por exemplo PV ENTRE 5.1 ​​E 5.9 .

  • Use o JFreeChart interativo controles de panorâmica/zoom, discutidos aqui examinar os dados; adicione botões adequados, mostrados aqui , se isso tornar mais fácil para os colegas verem suas descobertas.

  • Por design, JDBCXYDataset executa uma consulta definida por um String . Se seu design precisar exibir dados de uma consulta definida por um PreparedStatement , você pode usar o arquivo implementação é um guia.
    public class PreparedDataset extends AbstractXYDataset
        implements XYDataset, TableXYDataset, RangeInfo {
    
        private final PreparedStatement ps;
    
        public PreparedDataset(PreparedStatement ps) {
            this.ps = ps;
        }
        …
    }