Androidアプリ開発の教科書 [SQLite Activity内での処理のみざっくりと]

目次

データ保存の種類

  • SQLite DB(Android OSに備え付けのものを使用する)
  • プレファレンス(簡易データをkeyとvalueとして保存する)
  • 内部ストレージ(端末内部にファイルとして保存)
  • 外部ストレージ(SDカードなどに保存)
  • クラウド(ネットワーク経由でサーバーにデータを保存)

端末間のやり取りをするときは「クラウド」を使用する必要がある

データ更新の流れ

  • ヘルパオブジェクトの生成
  • ヘルパオブジェクトからDB接続オブジェクトもらう
  • SQL文字列の作成
  • ステートメントオブジェクトもらう
  • 変数のバインド
  • SQLの実行
//DBヘルパーオブジェクトを生成
DatabaseHelper helper = new DatabaseHelper(MainActivity.this);

//ヘルパーからデータベース接続オブジェクトをもらう / onCreate/onUpgradeなどが呼ばれる
SQLiteDatabase db = helper.getWritableDatabase();

try{
    //SQL分記述
    …VALUES(?,?);

    //ステートメントオブジェクト = データベースに対して実行できる文
    SQLiteStatement stmt = db.compileStatement(sqlDelete);


    //VALUES(?)の?に値を埋め込む
    //bind + 型(bind + Long型 = bindLong)
    stmt.bindLong(index, value);

    //ステートメントがdeleteなら`executeUpdateDelete`
    //Insertなどなら`executeInsert`
    stmt.executeUpdateDelete();

}finally {
    //DB接続オブジェクトの参照を解放(ステートメント作成時にカーソルが開く。閉じないとカーソルが開けなくなるので閉じた方がいい)
    db.close();
}

知ったこと

カーソルオブジェクト

  • SELECT文の結果表が丸々格納されているオブジェクト
  • データを条件付きで取り出す際に使用します。
  • rawQuery()などで取得する

番外編

クリック処理について

<Button
    :
    //クリックできない状態にする
    android:enabled="false"
    android:onClick="onSaveButtonClick"
    : 
/>