MemSQL データベースに blob を挿入しようとしています。
ここに挿入するソースを取得するので、それを blob に変換します。
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.length は 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では利用できません