プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Java(Android)、SQLiteでテーブルの作成。
1.DatabaseHelperクラスを作成する
 Eclipseの場合、ファイル→新規→クラス。
 名前:DatabaseHelper
 修飾子:public
 スーパークラス:android.database.sqlite.SQLiteOpenHelper

 ほんで中身をあれやこれやと作ってこんな感じφ(--)

 package hogehoge;

 import android.content.Context;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteOpenHelper;
 import android.util.Log;

 public class DatabaseHelper extends SQLiteOpenHelper {

  //定数
  private static final String DB_NAME = "test.db";
  private static final int DB_VERSION = 1;

  public DatabaseHelper(Context context) {
   super(context, DB_NAME, null, DB_VERSION);
  }

  @Override
  public void onCreate(SQLiteDatabase db) {
   //DB存在チェックが行われ、DBが無い場合に呼ばれる
   Log.d("dbh", "onCreate()");
  
   //トランザクション開始
   db.beginTransaction();

   try{
    //テーブル作成
    db.execSQL("CREATE TABLE IF NOT EXISTS Test ( _id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , test_txt TEXT );");
   
    //反映
    db.setTransactionSuccessful();
   
   } finally {
    //トランザクション終了
    db.endTransaction();
   }
  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
   //スキーマのVersionチェックが行われ,Versionが変更されていると呼ばれる
   Log.d("dbh", "onUpgrade()");
  }
 }


 「package hogehoge;」等は適当に環境に合わせて下さい。
 ポイントは「extends SQLiteOpenHelper」と「onCreate()」と「onUpgrade()」。

 「onCreate()」はオブジェクト生成時にDB存在チェックが行われ
 DBが無い場合(DB作成された時)に呼ばれます。

 「onUpgrade()」はオブジェクト生成時にバージョンチェックが行われ
 バージョンが変更されている場合に呼ばれます。
 ※サンプルの場合は定数「DB_VERSION」を変更すると呼ばれます。

 「onCreate()」でテーブルを作成するのが一般的みたいです。
 「onUpgrade()」はテーブルの変更とか再作成とか
 カラム追加とかバージョンアップ時に伴うあれやこれやを実装します。

3.DatabaseHelperオブジェクトの作成
 例えばこんな感じφ(--)

 DatabaseHelper dbh = null;
 SQLiteDatabase db = null;
 try {
  dbh = new DatabaseHelper(this);
  db = dbh.getWritableDatabase();
 } finally {
  if(db != null){
   db.close();
  }
  if(dbh != null){
   dbh.close();
  }
 }


 よく分からんけど「db = dbh.getWritableDatabase();」までやらないと
 DatabaseHelper()の「onCreate()」は呼ばれないのでご注意下さい。
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:Android  thema:プログラミング - genre:コンピュータ  Posted by ササキマコト 

  関連記事