Я пытаюсь вставить большой двоичный объект в свою базу данных MemSQL.
Здесь я получаю свой источник для вставки, поэтому я конвертирую его в большой двоичный объект:
byte[] bytes = rs.getString(2).getBytes("utf-8");
Blob blob = insert.insertTableBinary(bytes);
Это моя функция insertTableBinary:
Blob blob = conn.createBlob();
blob.setBytes(1, bytes);
System.out.println(blob.length());
String sql = "INSERT INTO binaire(receipt) VALUES(\"" + blob + "\")";
executeSQL(sql);
return blob;
На данный момент blob.lenght равен 1555, но когда я прочитал это благодаря:
String sql2 = "SELECT * FROM binaire";
Statement st = conn.createStatement();
ResultSet rs2 = st.executeQuery(sql2);
while(rs2.next()) {
Blob blob = rs2.getBlob(1);
System.out.println(blob.length());
}
Длина 25. Странно то, что когда я смотрю данные в таблице, я получаю: com.mysql.jdbc.Blob@6a8bc5d9
Так это не хранит хорошую вещь, нет? Я думаю, это ссылка на объект, но не на каплю.
Но я не знаю, что я делаю неправильно, я вижу много примеров с подготовленным оператором, но эта функция недоступна в MemSQL.