Google Android sieht folgende Persistenzkonzepte vor: Preferences, Dateien, SQLite Datenbank, und Content Provider. Für komplexere Daten und Abfragen kommt nur SQLite in Frage. An sich ja eine sehr gute schlanke SQL Datenbank. Aber das heißt auch wieder selber SQL formulieren und mit den Java Klassen zusammenbringen. Nach einigen Jahren JPA, Hibernate und anderen ORM Lösungen fällt das nicht gerade leicht. Die Chancen stehen somit gut für die Wiederauferstehung des DAO Pattern.

Die API sieht für den Datenbankzugriff die proprietäre Klasse SQLiteDatabase vor. Noch unklar ist die Bedeutung von JDBC, zwar gibt es das Package java.sql, aber Google verschweigt diese in Bezug auf die Persistenz. In der Dokumentation und in den Beispielen wird ausschließlich SQLiteDatabase und die Hilfsklasse QueryBuilder benutzt. Die Verwendung von JDBC als API wäre einerseits ressourcenhungriger aber dafür könnte man bestehende JDBC Anwendungen leichter portieren und bestehende ORM Tools nutzen.

Natürlich ist es verständlich, dass eine erste Version seine Ecken und Kanten hat, aber ich hoffe, dass Google in Zukunft noch eine komfortablere Persistenzlösung anbieten wird. Eine abgespeckte JPA Version wäre nett, oder zumindest ein DAO Generierungstool. Alternativ könnte Google auch gleich db4o kaufen (Grüße an Carl ;) ), die innerhalb kürzester Zeit db4o für Android zum laufen gebracht haben. Hier sieht man wie man db4o im Vergleich zu SQLite nutzt. Da db4o neben einer kommerziellen Variante auch mit einer GPL Lizenz angeboten wird, ist es besonders für Open Source Android Projekte interessant. Neben db4o hat auch Perst von McObject Unterstützung für Android.

Wer sich für SQLite entscheidet, hat also etwas Handarbeit vor sich. Umso wichtiger werden passende Tools. SQLite Analyzer hat mir vor ein paar Jahren gute Dienste als GUI Tool für SQLite geleistet. Wahrscheinlich gibt es inzwischen aber auch andere Alternativen.

Update 4.8.2011: Ich konnte der Versuchung nicht widerstehen und habe ein eigenes ORM Tool speziell für Android entwickelt: greenDAO ORM for Android. Mehr Infos auf Deutsch im greenrobot Blog.

Keine Kommentare möglich.