シリーズグーグルケータイOS、androidのお勉強、前回は、チュートリアルのStep1に相当する、サンプルプログラムをダウンロードしてくるところをやりました。
ということで、今回はStep2に相当する、データベースアクセス部分です。。
■データベース操作―DBHelper
このまえのノートパッドの例のなかに、すでに、データベース部分はコーディングされているようです。それをみて、お勉強してみましょう。
DB操作を行うクラスは、DBHelperですので、プロジェクトのなかのsrcの下の、パッケージcom.google.android.demo.notepad1にある、DBHelper.javaをみます。
メソッドからすると、以下のことをやっているようです。
●コンストラクタ=生成
引数のコンテキスト(ctx)からctx.openDatabase(データベース名、null)で
データベースをオープン、
オープンできないときは、
ctx.createDatabaseでデータベース作成
db.execSQL("Create Table文");
でテーブル作成
●挿入(createRow)
ContentValuesで値の組(レコード)がはいるところを生成
ContentValuesのオブジェクトのput(項目名、引数)でレコードに値設定
db.insertでそのレコードをテーブルに挿入
●行削除(deleteRow)
db.deleteで引数にIDを指定して削除
●全行取得(fetchAllRows)
db.queryで検索して、その結果をCursorクラスにいれる
このカーソルはc.first()で最初の行、
c.next()で次の行、
c.count()で全部の行数
c.getLong(pos)で現在さしている行のpos番目の項目(先頭0)の値
c.getString(pos)で現在さしている行のpos番目の項目(先頭0)の値
になるので(getLong、getStringは返す値により、よきにはからう)、適当に操作する
●1行取得(fetchRow)
db.queryの指定IDの行の検索結果をかえす。
カーソルからの値取り出しは全行取得と同様
●更新(updateRow)
ContentValuesで値の組(レコード)がはいるところを生成
ContentValuesのオブジェクトのput(項目名、引数)でレコードに更新する値設定
db.updateでその値を更新(更新先のIDを指定する)
●クローズ
db.close()する
■ということで・・・
操作手順は、
(1)DBHelperクラスを生成する
(2)上記の、全行検索、行検索、更新、削除、挿入のメソッドを呼び出し、
お好きなように・・・
(3)クローズをよびだしてとじる
というかんじでしょうか。。
ちなみに、上記の中で書いたdbというクラスは、
android.database.sqlite.SQLiteDatabaseに説明があり、
カーソルは、android.database.Cursorに説明があり、
値をセットしたContentValuesは、android.content.ContentValuesにあり、
生成時の引数のContextは、android.content.Contextにある
ということで、データベースぶぶんの説明おわり
Step2もおしまいということで、つぎからStep3