Как адаптировать базу данных к данным SQLite BLOB?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как адаптировать базу данных к данным SQLite BLOB?

Сообщение Anonymous »

Я использую Database-Rider для тестирования баз данных. Если я правильно понял, двоичные данные в файловом наборе данных должны быть закодированы как строка Base64, поэтому для набора xml-данных мы получаем что-то вроде этого: По моему опыту это работает для PostgreSQL (и, очевидно, для hsqldb, поскольку он используется в тестах базы данных), но не работает для SQLite. В столбце двоичных данных PostgreSQL есть тип bytea, поэтому данные в кодировке Base64 каким-то образом преобразуются в массив байтов при вставке в таблицу и наоборот из массива байтов в текст Base64 при чтении для сравнения с ожидаемым набором данных (я думаю потому что я не занимаюсь мануальным кодированием/декодированием данных). Но с SQLite, если я вставлю двоичные данные в таблицу следующим образом

Код: Выделить всё

double[] data = entity.getData();
ByteBuffer bb = ByteBuffer.allocate(data.length * 8);
for (double d : xy) {
bb.putDouble(d);
}
byte[] bytes = bb.array();
PreparedStatement statement = connection.prepareStatement("INSERT INTO sdata(data) VALUES (?)");
statement.setBytes(1, bytes);
Statement.executeUpdate();
затем ожидаемый набор данных завершается сбоем, потому что данные считываются программой базы данных из SQLite как байтовый массив, но ожидаемый набор данных закодирован как текст Base64, и я получил ошибку теста:< /p>

Код: Выделить всё

org.dbunit.assertion.DbComparisonFailure[value (table=sdata, row=0, col=data)expected: but was:

Подробнее здесь: [url]https://stackoverflow.com/questions/79185182/how-to-adapt-database-rider-to-sqlite-blob-data[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»