Я пытаюсь вставить некоторые двоичные данные в базу данных MySQL без использования подготовленных операторов. Причина этого в том, что я объединяю тысячи операторов в одну вставку для одного запуска. (Как именно работает дамп и импорт MySQL)
Я попробовал следующие операторы, но все они терпят неудачу:
INSERT INTO my_table VALUES (1,'g=���F| �}X���',2);
INSERT INTO my_table VALUES (1,CAST('g=���F|�}X���’ AS BINARY),2);
INSERT INTO my_table VALUES (1,CONVERT('g=���F|�}X���’, BINARY),2);
INSERT INTO my_table VALUES (1,BINARY 'g=���F|�}X���',2)
Ошибка, которую я получаю::
com.mysql.jdbc.MysqlDataTruncation:Усечение данных:Слишком длинные данные для столбца «двоичные_данные» в строке 1
Код, который я использую для выполнения оператора, просто:
conn.createStatement().executeUpdate(sql);
PreparedStatements работают нормально (, но в данном случае слишком медленно)
Фактическая строка I в базе данных отображается немного иначе:
g=÷óF|¸}X£ì[
Binary View:67 3d 81 f7 19 f3 46 7c b8 7d 58 8c 10 a3 ec 5b
Байты Java:103, 61, -127, -9, 25, -13, 70, 124, -72, 125, 88, -116, 16, -93, -20, 91
Может ли это быть как-то связано с кодировкой?
Приветствуются любые намеки, Ro