in meinem kleinen Testprogramm habe ich einige SQL-Abfragen. Die erste SELECT * FROM kilometer;
funktioniert ordnungsgemäß und gibt alle Spalten in der Tabelle zurück. So gibt ResultSet rs = stmt.executeQuery("SELECT * FROM kilometer;");
in Java eingebettet ein ResultSet zurück, das nicht leer ist.SQL Lite-Abfrage (zwischen in Daten) funktioniert nicht
Jetzt wollte ich nur die Zeilen innerhalb eines bestimmten Datums erhalten. Aber meine eingebettete Abfrage ResultSet rs = stmt.executeQuery("SELECT * FROM kilometer WHERE datum BETWEEN '2016-01-01' AND '2016-12-31';");
gibt ein leeres ResultSet zurück. Aber ich habe es online getestet und es hat richtig funktioniert. Wo ist mein Fehler? Ich habe bereits einige Seiten wie this konsultiert, aber ich kann den Fehler nicht finden.
Ich verwende SQLite 3.15.1 und Java SE 8.
Voll Java-Code:
public ArrayList<Strecke> getErgebnisse(final String startzeitpunkt, final String zielzeitpunkt) {
ArrayList<Strecke> strecken = new ArrayList<>();
try {
try {
if (connection != null) {
}
connection = DriverManager.getConnection("jdbc:sqlite:" + DB_PATH);
if (!connection.isClosed())
} catch (SQLException e) {
throw new RuntimeException(e);
}
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM kilometer WHERE datum BETWEEN '2016-01-01' AND '2016-12-31';");
while (rs.next()) {
strecken.add(new Strecke(Instant.ofEpochMilli(rs.getDate("datum").getTime()).atZone(ZoneId.systemDefault()).toLocalDate(), rs.getString("startort"), rs.getString("zielort"), rs.getDouble("kilometer")));
}
rs.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
return strecken;
}
Warum haben Sie 'try' in' try' verwendet, und 'if (connection! = Null)' Abschnitt hat keinen Code? –
Kopieren + Einfügen. Ich werde es jetzt besser machen. ;) –