My Android app is reading and writing to a local SQLite DB from a few different Activities and a Service. Pretty standard. But I\'m not happy with the way I\'ve got all the DB d
I don't know that I have an answer, other than I don't really like how this is handled, I find it very messy as well. I usually follow the pattern given in the notepad example that comes w/ the SDK.
Due to this I am working on my own mini ORM framework, using annotation and managing all of this. So far things are working ok, but I haven't worked everything out yet.
For now, I'm mainly curious to hear how you structure your Android apps with what's available in the standard SDK.
I'm not a real fan of SQL and the way that it's handled in android, so I use the object database NeoDatis. It basically just lets you store / retrieve Java objects into a flat file stored on the device very easily. db40 is also another alternative Object Database that will work on android.
Haven't had any issues using this approach, you may want to note that including the NeoDatis library will increase your APK size by ~700kb.
Just to complete the list more and more ... Another ORM is the ORM solution provided with the BARACUS Framework. It is not inteded to build enterprise sized databases, its more for storing a couple of entities in the database and make it accessible by the app. There is no codegeneration approach inside of it; you simply write your entity pojo, a rowmapper and your table def. Therefore you can make use of DAOs, Dependency Injection, IOC style lifecycle support and much more.
ORM Features so far :
For the more sophisticated database stuff (using the ORM is a little bit hand work like in good old spring rowmapper time) I am currently thinking about adding ormlite integration.
For more code details just check the tutorial application on github
We have been tuning ORMLite on Android for a while now and it is working well. ORMLite supports Android with native database calls and also supports other databases via JDBC. You annotate your classes/fields and use base DAO classes to persist to SQLite.
DatabaseHelper
which helps create an update your database. Your activities extend OrmLiteBaseActivity
(or service or tab) which gives access to helper and DAOs.Hope this is somewhat helpful.
You could also have a look at Androrm. It is an open source orm tool designed espacially for android. It should help you with all database related stuff.