メモリDBの作成¶
簡単メモリDBを作成する時、次2つステップがある。
-
ステップ1:簡単メモリDBを作成する時、SQLiteOpenHelper クラスを継承する。
-
ステップ2:コンストラクタメソッドで、テーブルの名前はnullを渡す。
以下クラスを参照してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | public class MemoryDbHelper extends SQLiteOpenHelper {
/**
* データベースバージョン
*/
private static final int DATABASE_VERSION = 1;
/**
* 一時テーブル名前
*/
private static final String TABLE_NAME = "PRINTSETTING";
/**
* 一時テーブルを作成する
*/
private static final String SQL_LITERAL_CREATE_TABLE = "CREATE TABLE "
+ TABLE_NAME + " (" + "PRTTYPE VARCHAR (256) ,"
+ "INLINENO VARCHAR (2) ," + "LDEVID VARCHAR (40) ,"
+ "BKUPINLINENO VARCHAR (2)," + "BKUPLDEVID VARCHAR (40) ,"
+ "PRTTYPEKEY VARCHAR (2) " + ");";
/**
* コンストラクタ
*
* @param context
* コンテキスト
*/
public MemoryDbHelper(Context context) {
super(context, null, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(SQL_LITERAL_CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//Nothing to do
}
//************************以下テーブルに検索、変更、削除、追加 START*********************
/**
* 一時テーブルを検索して、画面のデータを表示する。
*
* @param table
* テーブル
* @param multiSearch
* 設定する検索条件
*/
public void query(Table table, MultiSearch multiSearch) {
String[] columns = { "PRTTYPE","INLINENO", "LDEVID","BKUPINLINENO","BKUPLDEVID","PRTTYPEKEY" };
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME, columns,
multiSearch.getSqlString(), multiSearch.getSqlArgs(), null,
null, multiSearch.getSqlSortOrder());
if (cursor != null) {
table.clear();
cursor.moveToPosition(-1);
while (cursor.moveToNext()) {
Row row = table.newRow();
for (Cell cell : row.getCells()) {
int index = cursor.getColumnIndex(cell.getColumnName());
cell.setValue(cursor.getString(index));
cell.setDispValue(cursor.getString(index));
}
}
cursor.close();
}
}
/**
* 一時テーブルのデータを付ける。
*
* @param vals
* データソース
*/
public void insert(List<ContentValues> vals) {
SQLiteDatabase db = getWritableDatabase();
db.beginTransaction();
for (ContentValues val : vals) {
db.insert(TABLE_NAME, null, val);
}
db.setTransactionSuccessful();
db.endTransaction();
}
/**
* 一時テーブルのデータを削除する。
*/
public void delete() {
SQLiteDatabase db = getWritableDatabase();
db.delete(TABLE_NAME, null, null);
}
//************************以下テーブルに検索、変更、削除、追加 END*********************
}
|