einfache Abfrage: nicht implementiert SQLite-JDBC-Treiber
Ersten crack bei SQLite+Java und ich erhalten eine Fehlermeldung, wenn ich Versuch zum ausführen einer einfachen Auswahlabfrage.
Fehler:
nicht implementiert SQLite-JDBC-Treiber
Abfrage:
String sql =
"select Asset, Qty*Price+Fees as Cost \n" +
"from Transactions t \n" +
" inner join TransactionItems i on t.Id = i.TransactionId \n" +
"where TransDate <= ? \n";
try (PreparedStatement stmt = cnn.prepareStatement(sql)) {
java.sql.Date dte = new java.sql.Date(SumDate().getTimeInMillis());
stmt.setDate(1, dte);
try(ResultSet rs = stmt.executeQuery(sql)) {
while(rs.next()) {
PortfolioSummaryItem item = new PortfolioSummaryItem(PortfolioSummary.this);
item.Load(rs);
items.put(item.asset,item);
}
rs.close();
}
stmt.close();
- Was sind diese "
\n
" für? - Poste bitte die vollständige Fehlermeldung mit call-trace (wenn verfügbar).
- Das "\n"s sind für das Debuggen meist (Ausschneiden und einfügen der Abfrage-editor).
- Was
catch
Ersatzteile für Ihretry
s? Haben Sie Sie? - Its a bit of a throw-away-app, also bin ich nicht die Mühe mit abfangen von Fehlern
- Ihre SQL-scheint in Ordnung zu sein. Haben Sie abgeholt, den richtigen Treiber für die SQLite-version verwendest du?
- Poste bitte die genaue SQLite-version, die Sie verwenden, sowie Treiber-Klasse und die Verbindungszeichenfolge .
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies war ein einfaches cut/paste Stil Fehler. Bei der Verwendung von prepared statements solltest du nicht, dann pass die SQL in die
executeQuery
.Ändern:
Zu:
War dies das überschreiben der
preparedStatement
.Was es war, beschwerte sich über war die Ausführung einer Abfrage, die mit einem '?' in es, da, es war nicht die vorbereitete Abfrage.
Überprüfen Sie die jdbc-Treiber in den Ordner libs.
Es sieht aus wie es hat nicht implementiert die Methoden, die Sie genannt haben.
Versuchen, den Download der Treiber von hier:
https://bitbucket.org/xerial/sqlite-jdbc/downloads
No suitable driver found
. 2. Was meinst du mit "der Treiber"?