Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Abfrage zweimal (irrtümlich) in Java mit unerwünschten Werten ausgeführt

Das Aufspüren von Anomalien in Daten ist mühsam, aber JFreeChart kann das Ergebnis zumindest besser sichtbar machen. Einige Heuristiken zum Testen:

  • Um zu überprüfen, ob es sich bei den mutmaßlichen Duplikaten in Ihrer tabellarischen Auflistung tatsächlich um Duplikate handelt, formatieren Sie die Zeitstempel so, dass sie Millisekunden enthalten, z. füge ein S hinzu in ein SimpleDateFormat oder A zu einem DateTimeFormatter .

  • Übergeben Sie die Abfrage zu Studienzwecken vorübergehend direkt an JDBCXYDataset , und fügen Sie ein ORDER BY hinzu Klausel (ungetestet):

    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");
    
  • Aktivieren Sie Tooltips in Ihrer ChartFactory , wie Sie es hier getan haben , um Datenwerte in situ anzuzeigen . Dies kann zusätzliche Bedingungen für Ihr WHERE vorschlagen Klausel, z. PV BETWEEN 5.1 AND 5.9 .

  • Verwenden Sie das interaktive JFreeChart Pan/Zoom-Steuerelemente, besprochen hier die Daten zu prüfen; fügen Sie geeignete Schaltflächen hinzu, die hier gezeigt werden , wenn es für Kollegen einfacher wird, Ihre Ergebnisse zu sehen.

  • JDBCXYDataset führt eine durch einen String definierte Abfrage aus . Wenn Ihr Design Daten aus einer durch ein PreparedStatement definierten Abfrage anzeigen muss , können Sie den vorhandenen Implementierung als Leitfaden.

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