객체를 sqlite에 저장하려고 시도했으며 객체의 클래스가 Serializable을 구현했습니다.안드로이드 애플 리케이션의 sqlite에 객체를 저장할 수 없습니다.
public boolean add(ReturnInfo ri) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
db = dh.getWritableDatabase();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(ri);
oos.flush();
byte[] data = bos.toByteArray();
bos.close();
oos.close();
db.execSQL("insert into mClass(classData) values(?)" + new Object[]{data});
db.close();
Log.e("db", "insert succeeded");
return true;
} catch (Exception e) {
e.printStackTrace();
Log.e("db", "insert failed");
return false;
}
데이터베이스가 성공적으로 생성되어, 내가 잘못 생각이 없습니다 :
android.database.sqlite.SQLiteException: unrecognized token:
"[Ljava.lang.Object;@277c81d9" (code 1): , while compiling: insert
into mClass(classData) values(?)[Ljava.lang.Object;@277c81d9
여기 내 코드입니다 :하지만 항상 오류가 있습니다.
확실히 가능합니다. 구문 오류가 없습니까? (SQLSyntax) – Luftbaum
매개 변수 값 자리 표시자를 바꾸려면 문자열 연결이 필요합니다. 귀하의 SQL 쿼리는 유효한 SQL이 아닌 mClass (classData) 값 (?) [Ljava.lang.Object; @ 277c81d9 "'에 삽입됩니다. 'db.execSQL ("mClass (classData) values (?)", data)'에 삽입하고 싶습니까? 하지만 내 생각 엔'compileStatement()'와'bindBlob()'를 사용해야한다는 것이다. – dhke
관련 항목 : [이미지를 Sqlite에 BLOB로 저장하는 방법 및 검색하는 방법?] (https://stackoverflow.com/questions/7331310/how-to-store-image-as-blob-in-sqlite-how- to-retrieve-it) – dhke