データベースはアプリケーション毎に管理され、他のアプリケーションからは直接操作できません。
SQLiteのデータ型は下記の5種類のみ
INTEGER・・・符号付整数
REAL・・・浮動小数点
TEXT・・・テキスト
BLOB・・・バイナリデータ
NULL・・・NULL
データベースの作成にはSQLiteOpenHelperクラスを使用すると便利です。
このクラスを継承したデータベースヘルパークラスを作成し、データベースの作成、アップグレードを実装します。
SQLiteOpenHelperクラスのコンストラクタ
SQLiteOpenHelper(Context context, String fileName, SQLiteDatabase.CursorFactory factory, int version)context・・・コンテキストオブジェクト
fileName・・・データベース名
factory・・・よくわかりません。通常nullを指定
version・・・データベースのバージョン
onCreate()メソッドはデータベースが作成された時に呼ばれます。
テーブルの作成などを行います。
void onCreate(SQLiteDatabase db)
onUpgrade()メソッドはデータベースをバージョンアップした時に呼ばれます。
現在のレコードを退避し、テーブルを再作成した後、退避したレコードを戻すなどの処理を行います。
>void onUpgrade(SQLite db, int oldVersion, int newVersion)
DatabaseHelper.java
package my.study.android;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
/* データベース名 */
private final static String DB_NAME = "androidstudydb";
/* データベースのバージョン */
private final static int DB_VER = 1;
/*
* コンストラクタ
*/
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VER);
}
/*
* onCreateメソッド
* データベースが作成された時に呼ばれます。
* テーブルの作成などを行います。
*/
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "";
sql += "create table MyTable (";
sql += " No integer primary key autoincrement";
sql += ",Name text not null";
sql += ",Tel text";
sql += ",Age integer";
sql += ")";
db.execSQL(sql);
}
/*
* onUpgradeメソッド
* onUpgrade()メソッドはデータベースをバージョンアップした時に呼ばれます。
* 現在のレコードを退避し、テーブルを再作成した後、退避したレコードを戻すなどの処理を行います。
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
MainActivity.java
package my.study.android;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sub);
//データベースヘルパーのインスタンスを作成する(まだデータベースはできない)
DatabaseHelper dbHelper = new DatabaseHelper(this);
//データベースオブジェクトを取得する(データベースにアクセスすると作成される。)
SQLiteDatabase db = dbHelper.getWritableDatabase();
//データベースを閉じる
db.close();
}
}
作成したデータベースを確認するには、Android SQLiteのGUIツールを見てください。
【関連項目】
Android SQLiteデータベースを作成する
Android SQLiteのGUIツール
Android データベースにデータを書き込む(Insert、Update、Delete)
Android データベースのデータを読み込む(Select)
Android SQLiteデータベースを作成する(SQL文をリソースファイルに定義する)
1 件のコメント:
サンプルコード、とても参考になりました!
質問があるのですが、MainActivity.javaのsetContentView(R.layout.sub)のsubというのはxmlファイルですよね?コードをそのまま引用させていただいているのですが、「予期せぬ停止」が表示されてうまくいきません。記載されていないことで、やらなければいけないことってあるのでしょうか?
コメントを投稿