2 Stimmen

ein bild in eine datenbank (sqlite) mit java code einfügen. was soll ich tun?

In der Sqlite-Datenbank habe ich ein Feld mit der Bezeichnung Blob angelegt. Dann habe ich Java-Code geschrieben:

PreparedStatement preStmt = con.prepareStatement("INSERT INTO zz(pic) VALUES(?)");
preStmt.setBinaryStream(1, new FileInputStream(file), file.length());

Ich habe eine Ausnahme bekommen:

java.lang.AbstractMethodError: org.sqlite.PrepStmt.setBinaryStream(ILjava/io/InputStream;J)V

Haben Sie einen Vorschlag?

Oder, welchen Code sollte ich schreiben, wenn ich binäre Zahlen in Sqlite speichern möchte?

0 Stimmen

Duplikat von stackoverflow.com/questions/1767968/ immer noch nicht geklärt

0 Stimmen

Ich werde Oracle Berkeley DB Java Edition ausprobieren.

2voto

Alex Unger Punkte 170

Ich habe gute Erfahrungen mit dem sqlite jdbc dirver von xerial.org gemacht: http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC

Die SQLite JDBC-Implementierung von Xerial hat PreparedStatement.setBytes(index, byte[]). Sie sollten in der Lage sein, ein Byte-Array von Ihrem FileInputStream zu erhalten, indem Sie den Code unter dem folgenden Link verwenden: http://www.java-tips.org/java-se-tips/java.io/reading-a-file-into-a-byte-array.html

Wenn Sie Dinge als Blobs speichern, sollten Sie auf die folgenden Punkte achten: http://effbot.org/zone/sqlite-blob.htm

Ich hoffe, das hilft.

-Alex

0voto

BalusC Punkte 1034465

Le site AbstractMethodError API-Dokumentation erzählt das Folgende:

Wird ausgelöst, wenn eine Anwendung versucht, eine abstrakte Methode aufzurufen. Normalerweise wird dieser Fehler vom Compiler abgefangen; dieser Fehler kann nur zur Laufzeit auftreten, wenn sich die Definition einer Klasse seit der letzten Kompilierung der aktuell ausgeführten Methode inkompatibel geändert hat.

Offensichtlich haben Sie eine ältere Version des JDBC-Treibers im Klassenpfad, oder Ihr JDBC-Treiber muss aktualisiert werden, damit er mit der JDBC-API in der verwendeten JRE-Version übereinstimmt. Sie können die neueste Version auf der Sqlite-Homepage herunterladen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X