データベースはアプリケーション毎に管理され、他のアプリケーションからは直接操作できません。
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ファイルですよね?コードをそのまま引用させていただいているのですが、「予期せぬ停止」が表示されてうまくいきません。記載されていないことで、やらなければいけないことってあるのでしょうか?
コメントを投稿