11/26/2012

Android Databaseについての覚書

Androidのandroid.databaseサブパッケージではSQLite向きのクラスは提供されていない。さらにそのサブパッケージである、android.database.sqliteに実装がある。


Classes

SQLiteClosableAn object created from a SQLiteDatabase that can be closed. 
SQLiteCursorA Cursor implementation that exposes results from a query on a SQLiteDatabase
SQLiteDatabaseExposes methods to manage a SQLite database. 
SQLiteOpenHelperA helper class to manage database creation and version management. 
SQLiteProgramA base class for compiled SQLite programs. 
SQLiteQueryRepresents a query that reads the resulting rows into a SQLiteQuery
SQLiteQueryBuilderThis is a convience class that helps build SQL queries to be sent to SQLiteDatabase objects. 
SQLiteStatementRepresents a statement that can be executed against a database. 

上記の表はandroid.database.sqliteのパッケージに登録されているClassである。これらのクラスでDatabaseを取り扱うときに利用するのは、SQLiteOpenHelperである。このクラスをサブクラス化して利用する。単純な実装としてはonCreate、onUpdateを利用することが必要とされているされてる。

これに拡張的なメソッド、例えばdeleteに対して、Androidでは_idのフィールドを必ずもつことから


  • deleteById(String tableName, long id)
のような実装を追加してやることで削除のためのSQLを書くことが減るだろう。

また、利用する際の注意点としてはinsertメソッドの戻り値は、_idもしくは-1が戻ること。これに対して、delete,updateなどのメソッドでは「変更された列数」もしくは-1が戻る。この違いは注意が必要である。

追記
Androidアプリで使用するSQLiteのテーブル作成時の注意点
こちらのサイトで_idが必要なこととその後のInsertでの利用について説明がされています。

0 件のコメント:

コメントを投稿