我有值[B @ 6c89db9a我已經存儲了該值的字節數組...
這不是一個值。這是一個完全無用的(Java之外的)散列碼。數組的toString()
方法確實是而不是打印數組的內容。數組不會覆蓋toString()
,因此調用Object.toString()
。
如果你想在MySQL中存儲一個任意字節的數組,你可以使用BLOB
類型(或者VARBINARY
?它已經有一段時間,因爲我已經使用MySQL,但它從一個快速谷歌,他們基本上在你的表中現代版本相同)出現,並存儲字節:
創建表的例子(some_bytes BLOB);
你準備好的聲明中會是什麼樣子:
String query = "INSERT INTO example (some_bytes) VALUES (?)";
PreparedStatement pstmt = conn.prepareStatement(query);
你想通過插入這些字節:
pstmt.setBytes(1, myByteArray);
pstmt.execute();
編輯從添加註釋:你必須在一些字節陣列。如果這些字節代表字符的字符串,你知道的字符集是什麼,您將它們轉換爲String
使用String
構造函數字符集:
String myString = new String(bytes, knownCharset);
例如,如果它們代表了UTF-8字符串可以使用:
String myString = new String(byteArray, Charset.forName("UTF-8"));
*我有一個字節數組的值[B @ 6c89db9a我已經存儲了這個值... * ...這不是一個值。這是一個完全無用的(Java之外的)散列碼。數組的'toString()'方法不打印數組的內容。 –
是的,我使用它進行身份驗證,因此我需要存儲它 – Santiago