我对java中对象的序列化并不十分熟悉,但我正在尝试将我序列化的对象插入到包含2列的表中:sampleTimestamp INTEGER,data BLOB。使用代码:
// Binary Serialization of the object
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream os = new ObjectOutputStream(bos);
os.writeObject(result.getTopicInstance());
byte[] byteArray = bos.toByteArray();
os.close();
String query = SQLiteInterface.getInstance().insertOI("data", "sampleTimestamp, data", "" + result.getTimestamp() + "," + byteArray);
public String insertOI(String tableName, String columnList, String values)
{
return "INSERT OR IGNORE into " + tableName + "(" + columnList + ") values(" + values + ")";
}
从此返回的查询是:
INSERT OR IGNORE into data(sampleTimestamp,data)值(1520448720940000000,[B @ d32e4c]
查询确实到达SQLite并发出但返回错误:
[SQLITE_ERROR] SQL error or missing database (unrecognized token: "[B@d32e4c)")
这可能是一个sqlite格式错误,因为它不喜欢查询中的“[”。 根据以下评论进行编辑 - 这是字节数组的.toString表示。如何正确地将字节数组转换为SQLite的insert语句?