package com.myDatabase; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.TextView; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.content.ContentValues; 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[] {"id", "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("%d : %s : %d歳\r\n", c.getInt(0),c.getString(1), c.getInt(2)); isEof = c.moveToNext(); } textView1.setText(text); c.close(); db.close(); } @Override protected void onDestroy() { super.onDestroy(); } //レコードの更新ボタンが押された時 public void SetRecordOnClick(View v) { MyDBHelper helper = new MyDBHelper(this); SQLiteDatabase db = helper.getWritableDatabase(); ContentValues values = new ContentValues(); //追加するデータ values.put("name", "データ更新"); values.put("age", "100"); db.update("myDatabaseTable",values, "id=1", null); //データの検索 Cursor c = db.query("myDatabaseTable", new String[] {"id", "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("%d : %s : %d歳\r\n", c.getInt(0),c.getString(1), c.getInt(2)); isEof = c.moveToNext(); } textView1.setText(text); } //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("+ "id INTEGER PRIMARY KEY AUTOINCREMENT,"+ "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);"); } } }
ダウンロード
0 件のコメント:
コメントを投稿