вставить изображение в базу данных (sqlite) с помощью кода Java. что я должен делать? - PullRequest
2 голосов
/ 02 февраля 2010

в базе данных sqlite, я установил поле типа blob.затем я написал код Java:

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

я получил исключение:

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

любое предложение?

Или какой код я должен написать, если я хочуиспользовать сохранить двоичное число в sqlite?

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011

У меня был хороший успех с sqlite jdbc dirver от xerial.org: http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC

Реализация Xite в SQLite JDBC имеет PreparedStatement.setBytes (index, byte []). Вы должны иметь возможность получить байтовый массив из вашего FileInputStream, используя код по следующей ссылке: http://www.java -tips.org / java-se-tips / java.io / чтение файла в файл -байт-array.html

При хранении вещей как BLOB-объектов будьте осторожны со следующими проблемами: http://effbot.org/zone/sqlite-blob.htm

Надеюсь, это поможет.

для -Alex-

0 голосов
/ 03 февраля 2010

Документация AbstractMethodError API сообщает следующее:

Брошенный, когда приложение пытается вызвать абстрактный метод. Обычно эта ошибка отлавливается компилятором; эта ошибка может возникнуть только во время выполнения, если определение некоторого класса несовместимо изменилось с момента последней компиляции выполняемого в данный момент метода.

Очевидно, у вас есть старая версия драйвера JDBC, блуждающего в пути к классам, или ваш драйвер JDBC должен быть обновлен, чтобы соответствовать API JDBC в используемой версии JRE. Вы можете получить последнюю версию на домашней странице Sqlite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...