Runner in the High

技術のことをかくこころみ

EclipseでAndroidエミュレータ上のSQLiteのデータを見る

 EclipseAndroidエミュレータ上のSQLiteのデータを見るためのプラグインにはいろいろあるかとは思いますが、今回は最もシンプルで使いやすそうなQuestoid SQLite Browserとやらを使ってみます。

導入

  1. ここからQuestoid SQLite BrowserをEclipseにインストールする(Eclipseのフォルダ内にあるpluginsフォルダに放り込む)
  2. 再起動して有効化されているかどうか(dbファイルを選択したときに、右上のアイコンがクリックできるようになるかどうか)を確認。
  3. 拡張子が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/