Android開発のお勉強

メニュー

E-Mail



SQLiteに接続

 AndroidでSQLiteを扱います。
 SQLiteからデータを取得して表示します。

● SQLiteOpenHelper
 SQLiteOpenHelperを継承したクラスを作ります。
 指定したDBのファイルがなかった場合に、ファイルを作成してくれます。
 onCreateでSQLiteのファイルがなかった際の処理が実装できます。
 ここでは、テーブルを作成して、データを挿入します。



import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class MySQLiteOpenHelper extends SQLiteOpenHelper {


    public MySQLiteOpenHelper(Context context, String name, CursorFactory factory,int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        db.execSQL("create table ITEMS(ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT);");
        db.execSQL("insert into ITEMS(NAME) values('名前A');");
        db.execSQL("insert into ITEMS(NAME) values('名前B');");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

}



● Activity
 作成したSQLiteOpenHelperの継承クラスを生成します。
 初回は、指定したDBファイルがないので、
 ファイルが作成され、テーブルとデータが作成されます。
 
 SQLiteDatabaseを生成し、データベースを操作します。
 SQL文を発行して、結果をログに表示します。



import android.os.Bundle;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.util.Log;
import android.view.Menu;

public class SQLiteActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sqlite);


        SQLiteDatabase sdb = null;
        MySQLiteOpenHelper helper = new MySQLiteOpenHelper(SQLiteActivity.this,"test.db",null,1);

        try{

            sdb = helper.getWritableDatabase();

            String sqlstr = "select * from ITEMS";
            Cursor cursor = sdb.rawQuery(sqlstr,null);

            cursor.moveToFirst();
            for (int i = 0; i < cursor.getCount(); i++) {
                Log.v("ID : ",cursor.getString(0));
                Log.v("NAME : ",cursor.getString(1));
                cursor.moveToNext();
            }
            cursor.close();

        } catch(SQLiteException e) {
            e.printStackTrace();
        } finally {
            if (helper !=null) helper.close();
            if (sdb !=null) sdb.close();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_sqlite, menu);
        return true;
    }
}





Copyright (C) Androidアプリ開発のお勉強. All Rights Reserved.