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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als kommentierte diese ist fast immer schlechter als mit einem flachen Datei für Binär-Daten.
Wenn Sie brauchen, um link eine Datei jede Zeile in einer Tabelle ist der beste Weg zum speichern von URIs als strings.
Diese Frage könnte hilfreich sein, um erste URIs zu speichern und Auffinden der Dateien aus, die URIs Kann ich den Uri der Bilddatei von seinem Namen?
Verwenden Ormlite framework ist, bietet es einige einfache Funktionalität für die Persistenz von Java-Objekten zu SQL-Datenbanken
greenDAO ist eine einfache, leichte Objekt-relationales mapping-Bibliothek für Android/SQLite. Es ist einfach einzurichten und ist wahrscheinlich mehr entlang der Linien von, was Sie versuchen zu tun, so lange Ihre Quelle der Daten gliedert sich in Klassen, die anzeigen zu Datenbank-Tabellen und ist Mitglied Daten, die Google maps Datenbank-Felder. Es übernimmt eins-zu-eins und eins-zu-viele-Zuordnungen als gut.