Вставка двоичных данных в MySQL (без использования PreparedStatement #39;)

Я пытаюсь вставить некоторые двоичные данные в базу данных 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

5
задан Ro. 13 April 2012 в 10:56
поделиться