Speichern und abrufen von Objekten aus SQLite

Ich versuche zu speichern ein Objekt (serialisiert) in SQLite, dann abrufen und Deserialisieren das Objekt wieder in das ursprüngliche Objekt...

Bisher habe ich es geschafft, den code zu schreiben, um das Objekt gespeichert werden soll (glaube ich)

public void addLookup( LookupData lookupData ){
    SQLiteDatabase db = this.getWritableDatabase();


    ContentValues values = new ContentValues();
    values.put(KEY_PERSON, lookupData.getPersonName());
    values.put(KEY_PERSONOBJECT, Serializer.serializeObject(lookupData));
    values.put(KEY_DATETIME, lookupData.getDatetime());

    db.insert(TABLE_LOOKUPS, null, values);
    db.close();
}

Aber ich habe Mühe mit dem abrufen der Daten wieder heraus:

public PersonData getLookup( Integer id ){
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.query(TABLE_LOOKUPS, new String[] { KEY_ID, KEY_PERSON, KEY_PERSONOBJECT, KEY_DATETIME }, KEY_ID + "=?", new String[] { String.valueOf(id) }, null, null, null, null );
    if( cursor != null )
        cursor.moveToFirst();
    LookupData lookupData = Serializer.deserializeObject(cursor.getBlob(2));
}

Weil deserializeObject erwartet byte[] IntelliJ beschwert sich, dass der cursor.getString(2), oder der cursor befindet.getBlob(2) wird nicht funktionieren.

Ehrlich gesagt, ich bin aus meiner Tiefe mit diesem. Wie denken Sie Kerle, serialisieren, speichern, abrufen und Deserialisieren wieder in Objekte, die wieder auf?

  • I'm trying to store an object (serialized) in SQLite Warum würden Sie dies tun? Wenn Sie nur gehen, um zu speichern serialisiert binäre Daten, tun Sie es in einer flachen Datei.
Schreibe einen Kommentar