SQLiteOpenHelper
30484 ワード
本論文は、http://code.google.com/p/androidlearn/wiki/SQLiteOpenHelperから回転する。
SQLiteOpenHelper類を継承し、構造方法においてそれぞれConttext、データベース名、CurorFactory(一般的にnullに入ってきたが、デフォルトデータベース)、データベースバージョン番号(負の数ではない)が必要となります。SQLiteOpenHelperで最初に実行されるのは、onCreate方法である(shujkが初めて作成された時)。コンストラクタでは本当にデータベースを作成していませんが、getWritable DatabaseまたはgetReadable Databaseメソッドを呼び出した時に、本当にデータベースを作成して、SQLiteDatabaseオブジェクトに戻ります。
SQLiteOpenHelper類を継承し、構造方法においてそれぞれConttext、データベース名、CurorFactory(一般的にnullに入ってきたが、デフォルトデータベース)、データベースバージョン番号(負の数ではない)が必要となります。SQLiteOpenHelperで最初に実行されるのは、onCreate方法である(shujkが初めて作成された時)。コンストラクタでは本当にデータベースを作成していませんが、getWritable DatabaseまたはgetReadable Databaseメソッドを呼び出した時に、本当にデータベースを作成して、SQLiteDatabaseオブジェクトに戻ります。
public class MyDataBaseAdapter
{
// log
private static final String TAG = "MyDataBaseAdapter";
//
public static final String KEY_ID = "_id";
//
public static final String KEY_NUM = "num";
// id
public static final String KEY_DATA = "data";
// data
private static final String DB_NAME = "Examples_06_06.db";
//
private static final String DB_TABLE = "table1";
//
private static final int DB_VERSION = 1;
// Context
private Context mContext = null;
//
private static final String DB_CREATE = "CREATE TABLE " + DB_TABLE + " (" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NUM + " INTERGER,"+ KEY_DATA + " TEXT)";
// open() ,
private SQLiteDatabase mSQLiteDatabase = null;
// SQLiteOpenHelper
private DatabaseHelper mDatabaseHelper = null;
private static class DatabaseHelper extends SQLiteOpenHelper{
/* - */
DatabaseHelper(Context context){
// getWritableDatabase()
// getReadableDatabase()
//
super(context, DB_NAME, null, DB_VERSION);
}
/* */
@Override
public void onCreate(SQLiteDatabase db){
//
db.execSQL(DB_CREATE);
}
/* */
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
db.execSQL("DROP TABLE IF EXISTS notes");
onCreate(db);
}
}
/* - Context */
public MyDataBaseAdapter(Context context){
mContext = context;
}
// ,
public void open() throws SQLException{
mDatabaseHelper = new DatabaseHelper(mContext);
mSQLiteDatabase = mDatabaseHelper.getWritableDatabase();
}
//
public void close(){
mDatabaseHelper.close();
}
/* */
public long insertData(int num, String data){
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_NUM, num);
initialValues.put(KEY_DATA, data);
return mSQLiteDatabase.insert(DB_TABLE, KEY_ID, initialValues);
}
/* */
public boolean deleteData(long rowId){
return mSQLiteDatabase.delete(DB_TABLE, KEY_ID + "=" + rowId, null) > 0;
}
/* Cursor */
public Cursor fetchAllData(){
return mSQLiteDatabase.query(DB_TABLE, new String[] { KEY_ID, KEY_NUM, KEY_DATA }, null, null, null, null, null);
}
/* */
public Cursor fetchData(long rowId) throws SQLException{
Cursor mCursor = mSQLiteDatabase.query(true, DB_TABLE, new String[] { KEY_ID, KEY_NUM, KEY_DATA }, KEY_ID + "=" + rowId, null, null, null, null, null);
if (mCursor != null){
mCursor.moveToFirst();
}
return mCursor;
}
/* */
public boolean updateData(long rowId, int num, String data){
ContentValues args = new ContentValues();
args.put(KEY_NUM, num);
args.put(KEY_DATA, data);
return mSQLiteDatabase.update(DB_TABLE, args, KEY_ID + "=" + rowId, null) > 0;
}
}