EclipseでAndroidエミュレータ上のSQLiteのデータを見るためのプラグインにはいろいろあるかとは思いますが、今回は最もシンプルで使いやすそうなQuestoid SQLite Browserとやらを使ってみます。
導入
- ここからQuestoid SQLite BrowserをEclipseにインストールする(Eclipseのフォルダ内にあるpluginsフォルダに放り込む)
- 再起動して有効化されているかどうか(dbファイルを選択したときに、右上のアイコンがクリックできるようになるかどうか)を確認。
- 拡張子がdbのファイル以外は選択しても中身を見れないので注意。
【コード】
package com.example.dbtest;
import android.app.Activity;
import android.widget.Toast;
import android.os.Bundle;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class MainActivity extends Activity {
private final String DBNAME = "test.db";
private final String TABLE_NAME = "Info";
private final String[] column = { "name", "job", "age" };
private SQLiteDatabase database;
private Cursor cs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
database = this.openOrCreateDatabase(DBNAME, MODE_PRIVATE, null);
database.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (name TEXT, job TEXT, age INTEGER);");
database.execSQL("INSERT INTO " + TABLE_NAME + " (name, job, age) VALUES('Jonathan', 'Engineer', '24');");
database.execSQL("INSERT INTO " + TABLE_NAME + " (name, job, age) VALUES('Bobby', 'Teacher', '45');");
database.execSQL("INSERT INTO " + TABLE_NAME + " (name, job, age) VALUES('Ricky', 'Taxi Driver', '32');");
cs = database.query(TABLE_NAME, column, null, null, null, null, null, null);
cs.close();
}
}
- openOrCreateDatabase関数で、データベースファイルが存在していればファイルを作成、なければ新たにファイルを作成して、そこにデータを格納する。
- SQLiteDatabase型変数のdatabaseから最後にclose()が呼ばれていないことに関して違和感を覚えるかもしれないが、最終的にDalvikVMによってオブジェクトが破棄されるため問題はない。だが、Cursorに関してはしっかりとclose()を呼んでおく必要あり。 (詳しくは「SQLiteをつかうための注意点」を参照)
【中身を見る】
Questoid SQLite Browserを起動するとこんな感じの画面に。
- 「データベース構造」タブからテーブルの一覧とそのカラムが見られる。
- 「Browse Data」タブからテーブルを選ぶとその中身が見られる。
ちなみにQuestoid SQLite Browserからできるのは、テーブルのカラムやその内容を見たりすることだけで、データの修正や追加はできません。あしからず!
(参考)http://www.coderzheaven.com/2011/04/18/sqlitemanager-plugin-for-eclipse/
(参考)http://www.coderzheaven.com/2011/04/18/sqlitemanager-plugin-for-eclipse/