TextViewコントロール にデータベースの内容を表示する。
package com.myDatabase; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.content.Context; public class MyDatabase extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //ヘルパークラスのインスタンスを作成します。 MyDBHelper helper = new MyDBHelper(this); //書き込み可能でデータベースを開く //(ここでDBファイルがなかったら作成する(onCreate) SQLiteDatabase db = helper.getWritableDatabase(); Cursor c = db.query("myDatabaseTable", new String[] { "name", "age" }, null, null, null, null, null); boolean isEof = c.moveToFirst(); TextView textView1 = (TextView)findViewById(R.id.textView1); String text=""; while (isEof) { text += String.format("%s : %d歳\r\n", c.getString(0), c.getInt(1)); isEof = c.moveToNext(); } textView1.setText(text); c.close(); db.close(); } @Override protected void onDestroy() { super.onDestroy(); } //DB利用には、SQLiteOpenHelper抽象クラスを継承する必要がある。 public class MyDBHelper extends SQLiteOpenHelper { public MyDBHelper(Context context) { super(context, "database.db", null, 1); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //データベースのバージョンが変わる場合に呼び出される。 } @Override //ここでデータベース作成(コンストラクタに渡されたDBファイル名が存在しない場合に呼ばれる) public void onCreate(SQLiteDatabase db) { // テームルを作成 db.execSQL( "create table myDatabaseTable("+ "name text not null,"+ "age text"+ ");" ); // Insert文のSQLを実行してレコードを挿入 db.execSQL("insert into myDatabaseTable(name,age) values ('聖徳太子', 10);"); db.execSQL("insert into myDatabaseTable(name,age) values ('夏目漱石', 20);"); } } }
SQLiteDatabase.query()メソッドの
第一引数はテーブル名。
第二引数は、取得する列名(カラム名、フィールド名)の配列を指定。
第三引数、第四引数は取得するレコードの条件を指定。
第五引数は、group by句を指定。
第六引数は、Having句を指定。
第七引数は、order by句を指定。
第八引数は、limit句(取得するレコードの上限数)を指定。
使わない場合は、nullを指定。
ダウンロード
0 件のコメント:
コメントを投稿