Android開発におけるsqliteデータストレージのまとめ
4545 ワード
appのデータの保存が完了した時点で直接sqliteを用いて保存~
1,sqliteopenhelperに継承されるクラス
このクラスの主な目的は、データベース・データ・テーブルの作成を完了することです.
このクラスはmydataに等しい.dbデータベースのデータテーブル
ここでinsertメソッドをカスタマイズする
3.読み取り
Cursor cが取得したのか、それとも原生sql文で取得したのか
キー文はすべてsql文で実現されます.
1,sqliteopenhelperに継承されるクラス
このクラスの主な目的は、データベース・データ・テーブルの作成を完了することです.
public class MySqliteHelper extends SQLiteOpenHelper {
public MySqliteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table if not exists my_table(_id integer primary key autoincrement,task text,date text,task_type text)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
、メインプログラム保存データこのクラスはmydataに等しい.dbデータベースのデータテーブル
MySqliteHelper mySqliteHelper=new MySqliteHelper(this,"mydata.db",null,1); //mydata.db
ここでinsertメソッドをカスタマイズする
//
iv1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tasktext=et3.getText().toString();
String datetext=et2.getText().toString();
String task_typetext=et1.getText().toString();
ContentValues values=new ContentValues(); // key-value
values.put("task",tasktext);
values.put("date", datetext);
values.put("task_type", task_typetext);
Insert(mySqliteHelper, values);
Intent intent=new Intent(add_task.this,MainActivity.class);
startActivity(intent);
finish();
}
});
//
public void Insert(MySqliteHelper mySqliteHelper,ContentValues values)
{
SQLiteDatabase db=mySqliteHelper.getWritableDatabase(); //
db.insert("my_table", null, values); // sql
db.close();
}
3.読み取り
Cursor cが取得したのか、それとも原生sql文で取得したのか
// List
public ArrayList<HashMap<String,Object>> getALLlist() {
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String , Object>>();
SQLiteDatabase db = mySqliteHelper.getReadableDatabase();
Cursor c = db.query("my_table", new String[]{"_id", "task", "date", "task_type"}, null, null, null, null, null);
if (c != null) {
while (c.moveToNext()) {
HashMap<String, Object> item = new HashMap<String, Object>();
item.put("_id", c.getInt(c.getColumnIndex("_id")));
item.put("task", c.getString(c.getColumnIndex("task")));
item.put("date", c.getString(c.getColumnIndex("date")));
item.put("task_type", c.getString(c.getColumnIndex("task_type")));
item.put("image", R.drawable.quan1);
list.add(item);
}
}
c.close();
return list;
}
、修正db.update("my_table",values,"_id="+String.valueOf(id),null);
5.削除//
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(task_read.this)
.setPositiveButton(" ",new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
db.delete("my_table","_id="+String.valueOf(id),null);
Intent intent1=new Intent(task_read.this,MainActivity.class);
startActivity(intent1);
}
}).setNegativeButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).setTitle(" ").create().show();
}
});
キー文はすべてsql文で実現されます.