Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête exécutée deux fois (par erreur) en Java avec des valeurs indésirables

Traquer les anomalies dans les données est ardu, mais JFreeChart peut au moins rendre le résultat plus facile à visualiser. Quelques heuristiques à tester :

  • Pour vérifier que les doublons présumés dans votre liste tabulaire sont bien des doublons, formatez les horodatages pour inclure des millisecondes, par ex. ajouter un S à un SimpleDateFormat ou A à un DateTimeFormatter .

  • Pour étude, passez temporairement la requête directement à JDBCXYDataset , et ajoutez un ORDER BY clause (non testée) :

    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");
    
  • Activer les info-bulles dans votre ChartFactory , comme vous l'avez fait ici , pour voir les valeurs des données in situ . Cela peut suggérer des conditions supplémentaires pour votre WHERE clause, par ex. PV BETWEEN 5.1 AND 5.9 .

  • Utilisez le JFreeChart interactif contrôles de panoramique/zoom, discutés ici examiner les données; ajouter des boutons appropriés, affichés ici , si cela permet à vos collègues de voir plus facilement vos résultats.

  • De par leur conception, JDBCXYDataset exécute une requête définie par une String . Si votre conception doit afficher les données d'une requête définie par un PreparedStatement , vous pouvez utiliser le implémentation comme guide.

    public class PreparedDataset extends AbstractXYDataset
        implements XYDataset, TableXYDataset, RangeInfo {
    
        private final PreparedStatement ps;
    
        public PreparedDataset(PreparedStatement ps) {
            this.ps = ps;
        }
        …
    }