Android:SQLiteデータベース
2465 ワード
SQLiteデータベース
一、SQLite概要
SQLiteは軽量レベルのリレーショナル・データベースで、実行速度が非常に速く、リソースの占有量が非常に少ない.モバイルデバイスでの使用に最適です.
二、データベースの作成
AndroidにはSQLiteOpenHelperヘルプクラスが用意されています.まずSQLiteOpenHelperは抽象クラスです.このクラスを使用するには、クラスを作成して継承する必要があります.SQLiteOpenHelperには2つの抽象的な方法があります.1つはonCreat()で、1つはonUpdate()で、私たちは自分のヘルプクラスでこの2つの方法を書き直さなければなりません.次に、この2つの方法でデータベースの論理を実装およびアップグレードします.
SQLiteOpenHelperには、2つの非常に重要なインスタンスメソッド、getReadableDatabase()とgetWriteableDatabase()があります.この2つのメソッドは、データベースを作成または開くことができます(このデータベースがすでに存在する場合は、直接開く必要があります.そうでない場合は、新しいデータベースを作成します)、データベースの読み書き操作が可能なオブジェクトを返します.違いは、データベースが書き込み不可になった場合(ディスク領域がいっぱいになった場合など)、getReadableDatabase()が返すオブジェクトは読み取り専用でデータベースを開き、getWriteableDatabase()メソッドに異常が発生します.
SQLiteOpenHelperには書き換え可能な2つの構造方法があり、一般的にはパラメータの少ない構造方法を使用すればよい.この方法は4つのパラメータを受信する.
最初のパラメータ:Context、コンテキスト
2番目のパラメータ:name、データベースの名前
3番目のパラメータ:データをクエリーするときにカスタムCursorを返すことができます.一般的にnullです.
4番目のパラメータ:データベースのアップグレード操作に使用される現在のデータベースのバージョン番号を示します.
SQLiteOpenHelperのインスタンスを構築した後、彼のgetReadableDatabase()とgetWriteableDatabase()メソッドを呼び出すとデータベースを作成できます.データベースファイルは、data/data/databases/ディレクトリの下に格納されます.この場合、onCreat()を書き換える方法も実行されるので、通常はここでテーブルを構築するロジックを処理します.
SQLのデータ型は簡単です:integerは整数型を表し、realは浮動小数点型を表し、textはテキスト型を表し、blobはバイナリ型を表し、autoincrementキーワードは自己成長を表します.
新しいMyDatabaseHelperクラス:
その後MainActivityでMyDatabaseHelperのインスタンスを取得し、getWritableDatabase()メソッドを呼び出してデータベースを作成すればよい.execSQL()メソッドは、テーブル文を作成します.
補足:一般的なデータベースコマンド:
データベースを開く:sqlite 3+データベース名データベース内のテーブルを表示する:. table
構築文の表示:. schema
三、データベースのアップグレード
一、SQLite概要
SQLiteは軽量レベルのリレーショナル・データベースで、実行速度が非常に速く、リソースの占有量が非常に少ない.モバイルデバイスでの使用に最適です.
二、データベースの作成
AndroidにはSQLiteOpenHelperヘルプクラスが用意されています.まずSQLiteOpenHelperは抽象クラスです.このクラスを使用するには、クラスを作成して継承する必要があります.SQLiteOpenHelperには2つの抽象的な方法があります.1つはonCreat()で、1つはonUpdate()で、私たちは自分のヘルプクラスでこの2つの方法を書き直さなければなりません.次に、この2つの方法でデータベースの論理を実装およびアップグレードします.
SQLiteOpenHelperには、2つの非常に重要なインスタンスメソッド、getReadableDatabase()とgetWriteableDatabase()があります.この2つのメソッドは、データベースを作成または開くことができます(このデータベースがすでに存在する場合は、直接開く必要があります.そうでない場合は、新しいデータベースを作成します)、データベースの読み書き操作が可能なオブジェクトを返します.違いは、データベースが書き込み不可になった場合(ディスク領域がいっぱいになった場合など)、getReadableDatabase()が返すオブジェクトは読み取り専用でデータベースを開き、getWriteableDatabase()メソッドに異常が発生します.
SQLiteOpenHelperには書き換え可能な2つの構造方法があり、一般的にはパラメータの少ない構造方法を使用すればよい.この方法は4つのパラメータを受信する.
dbHelper = new MyDatabaseHelper(context, name, factory, version);
最初のパラメータ:Context、コンテキスト
2番目のパラメータ:name、データベースの名前
3番目のパラメータ:データをクエリーするときにカスタムCursorを返すことができます.一般的にnullです.
4番目のパラメータ:データベースのアップグレード操作に使用される現在のデータベースのバージョン番号を示します.
SQLiteOpenHelperのインスタンスを構築した後、彼のgetReadableDatabase()とgetWriteableDatabase()メソッドを呼び出すとデータベースを作成できます.データベースファイルは、data/data
SQLのデータ型は簡単です:integerは整数型を表し、realは浮動小数点型を表し、textはテキスト型を表し、blobはバイナリ型を表し、autoincrementキーワードは自己成長を表します.
新しいMyDatabaseHelperクラス:
public class MyDatabaseHelper extends SQLiteOpenHelper {
public static final String CREATE_BOOK = "create table book("
+"id integer primary key autoincrement, "
+"author text, "
+"price real,"
+"page integer, "
+"name text)";
private Context mContext;
public MyDatabaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_BOOK);
Toast.makeText(mContext, "Create succeeded", 1).show();
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
}
}
その後MainActivityでMyDatabaseHelperのインスタンスを取得し、getWritableDatabase()メソッドを呼び出してデータベースを作成すればよい.execSQL()メソッドは、テーブル文を作成します.
補足:一般的なデータベースコマンド:
データベースを開く:sqlite 3+データベース名データベース内のテーブルを表示する:. table
構築文の表示:. schema
三、データベースのアップグレード