2009年1月30日金曜日

AndroidでSQLiteの使い方を調べてみた

まーなんせ、Androidで自立型の何かを作ろうと思ったらデータベースを使いたくなるんで、まずはSQLiteの使い方を調べてみました。

SQLiteの参考資料を探す上での注意

2008年8月中旬頃にリリースされたβ0.9とそれ以前(〜M5)で結構書き方が変わっている。サイト上のサンプルや書籍では以前の方方のものが多く、SDK 1.0ではそのままではコンパイルエラーとなってしまう。変更点はandroid情報まとめ @ ウィキ - Tips あたり参照のこと。

既存の資料と比較すると、データベースをオープンする時の方法が変わっているだけで、オープンした後は同じような使い方みたい。ここさえ押さえれば、あとはググって出てきた資料を追えば流れが解るかも。

読むべきドキュメント

android.database.sqlite.SQLiteOpenHelper

名前の通り、データベースオープンに絡む細々とした処理のヘルパークラス。

SQLiteはファイルベースのデータベースであり、MySQLみたいにサーバを持たないので、ロック制御などはアプリケーションで面倒を見なければならない。(じゃないと壊れる)

とはいえ、これは結構面倒なので、便利クラスを用意してくれたという感じみたい。

SQLiteOpenHelperのインスタンス生成に伴い、

  • データベースのオープン
  • データベースが存在しないなら、CREATE TABLE文などの任意SQLを実行可能
  • データベースのバージョン(SQLiteのバージョンではなく、Railsのマイグレーションのバージョンのような感じ?)が違うなら、マイグレーション用の任意SQLを実行可能

これらも一気に処理してくれて、かつ更新処理ならgetWritableDatabase()を使ってデータベースファイルのロックもしてくれる。(たぶん)

android.database.sqlite.SQLiteQueryBuilder

さらっと眺めたら、サンプルソースで使い方をイメージしてみよう。

サンプルソース

NotePadProvider.java

・・・ってな記事を1ヶ月前に書きかけて、忘れていた(汗) かなり中途半端だけど、いいや、公開しよう。

勉強会 - 日本Androidの会(日本アンドロイドの会) にSQLiteの使い方に関するチュートリアルを書いたので、参考にすると良いかも。

0 件のコメント: