SQLiteデータベースの使用方法(1/3): データベースの作成~テーブルの作成 | Androidアプリ開発

Androidアプリ開発におけるSQLiteデータベースの使用方法について、この記事では「SQLiteデータベース作成~テーブルの作成」を紹介します。
SQLiteデータベースにおけるデータの操作(追加/検索)については末尾のセクションにある記事を参照ください。
スポンサーリンク

データベースの作成~テーブルの作成

SQLiteデータベースへアクセスするためにはSQLiteOpenHelperというSQLiteアクセス用のラッパークラスを継承したクラスを作成します。
SQLiteOpenHelperを継承したクラスにおいて最低限実装しなければいけないコードは以下の①superを含むコンストラクタ ②onCreateメソッド ③onUpgradeメソッド の3つです。
public class DatabaseManager extends SQLiteOpenHelper {
    private final static String DATABASE_FILENAME = "sample.db";
    private final static int DATABASE_VERSION = 1;

    DatabaseManager(Context context) {
        super(context, DATABASE_FILENAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
    
}

①superを含むコンストラクタ

    DatabaseManager(Context context) {
        super(context, DATABASE_FILENAME, null, DATABASE_VERSION);
    }
superのそれぞれの引数の意味は以下です。
  • 第1引数はContextです。superの引数に渡すために実装するclassのコンストラクタの引数にもContextを指定しておきましょう。
  • 第2引数はデータベース名です。
  • 第3引数はCursorオブジェクトを生成するためのFactoryオブジェクトですが、通常は使用しないためnullで大丈夫です。
  • 第4引数はデータベースのバージョンです。
第4引数のデータベースのバージョンについては好きな値を設定できます(以下、newVerと呼ぶ)が、既にデータベースが生成されている場合(そのバージョンをoldVerと呼ぶ)は以下の挙動となります。
  • newVer = oldVerのとき: インスタンスが生成されます
  • newVer > oldVerのとき: onUpgradeが呼ばれます
  • newVer < oldVerのとき: onDowngradeが呼ばれます

② onCreateメソッド

onCreateメソッドはSQLiteDatabaseオブジェクト生成時にデータベースが存在しなければ呼ばれます。例えば以下のコードを実行するとデータベースのファイル生成後にonCreateメソッドが呼ばれます。
DatabaseManager dm = new DatabaseManager(con); //conは何かしらのContextオブジェクト
SQLiteDatabase db = dm.getWritableDatabase();
onCreateメソッドはデータベース作成直後に呼ばれるため、通常はここにテーブル作成のコードを実装します。例は以下です。
    @Override
    public void onCreate(SQLiteDatabase db) {
        String cmd = "create table test(id integer, str text)";
        db.execSQL(cmd);
    }
この例ではテーブル作成のSQLiteコマンド文字列を生成後、そのコマンドを実行しています。
SQLiteコマンドにおいてテーブル作成は以下です。そのため、上記のようなコードとなります。
create table テーブル名(カラム名1 変数型, カラム名2 変数型, ...)

データベースファイルの保存場所と確認方法

データベースは内部データ -> data -> data -> パッケージ名 -> database内に作成されます。
データベースのファイルが生成されたかどうか?をAndroidStudioで確認するには、Device File Explorer上で上記のパスを確認します。
SQLiteデータベースの場所

③ onUpgradeメソッド

onUpgradeメソッドは①にも記載した通り、super実行時にデータベースのバージョンが上がっていると呼ばれます。
よって、バージョンを上げなければ特にコードを実装する必要はありません。

ここまでのサンプルコード

ここまでのサンプルコードは以下です。
public class DatabaseManager extends SQLiteOpenHelper {
    private final static String DATABASE_FILENAME = "sample.db";
    private final static int DATABASE_VERSION = 1;

    DatabaseManager(Context context) {
        super(context, DATABASE_FILENAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String cmd = "create table test(id integer, str text)";
        db.execSQL(cmd);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}
スポンサーリンク

データ操作(追加~検索)

SQLiteデータベースにおけるデータの追加や検索といった操作のコード実装方法は以下にまとめています。そちらを参照ください。
Androidアプリ開発
スポンサーリンク
Androidアプリ開発 記事一覧
Androidアプリ開発 記事一覧
Androidアプリ開発の記事一覧を以下にまとめています。
良かったらご覧ください。

Androidアプリ開発 記事一覧
カテゴリ広告: Androidアプリ開発
スポンサーリンク: Androidアプリ開発を個人レッスンで学ぶなら...?
Androidアプリ開発は一人で学んでいても限界があります。
そこでオススメなのがオンラインでAndroidアプリ開発を学べる「コードキャンプ」。
個人レッスンで丁寧に教えてくれます。

無料レッスン体験も可能なので、まずは無料体験から試してみてはいかがでしょうか?

Androidアプリ開発個人レッスン
一般広告: モバイルバッテリー
スポンサーリンク
Aresei-note
タイトルとURLをコピーしました