SQLite數據庫操作封裝
public class mydaHelper extends SQLiteOpenHelper{//構造函數,這個是必須有的包括四個參數,分別是容器,數據庫的名字,CursorFactory暫時不用管,版本號
public mydaHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version);
}
// 自己寫的一個含有三個參數的構造函數,它其實就是調用上面的構造函數 public mydaHelper(Context context, String name, int version) { this(context, name, null, version);
}
//同樣這是自己寫的一個含有兩個參數的構造函數,來自于對上面的調用 public mydaHelper(Context context, String name) { this(context, name,1);
}
//創建數據庫時調用,會建立一個表 public void onCreate(SQLiteDatabase db) {
System.out.println("create database"); db.execSQL("create table user(id int,name text)"); }
//更新數據庫時被調用 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { System.out.println("update a Database");
}
}</pre>使用代碼:
public class Activity01 extends Activity { private Button button1; private Button button2; private Button button3; private Button button4; private Button button5; private TextView textview; private EditText editText1; private EditText editText2;public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
//實例化按鈕和文本以及編輯框 textview = (TextView) this.findViewById(R.id.textView1); button1 = (Button) this.findViewById(R.id.button1); button1.setText("create"); button2 =(Button) this.findViewById(R.id.button2); button2.setText("insert"); button3 =(Button) this.findViewById(R.id.button3); button4 =(Button) this.findViewById(R.id.button4); button3.setText("更新"); button4.setText("查詢"); button5 = (Button) this.findViewById(R.id.button5); editText1 = (EditText) this.findViewById(R.id.editText1); editText2 = (EditText) this.findViewById(R.id.editText2); editText1.setText(""); editText2.setText(""); editText1.setEnabled(true); editText2.setEnabled(true);
button1.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){
//調用SQLiteOpenHelper構造函數 mydaHelper dbh = new mydaHelper(Activity01.this,"my database");
//通過對mydaHelper的調用創建數據庫并來執行CreateTable方法創建一個user表 SQLiteDatabase db = dbh.getReadableDatabase(); } }); button2.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){
//通過ContentValues來向數據庫里寫數據 ContentValues contentValues = new ContentValues(); contentValues.put("id", editText1.getText().toString()); contentValues.put("name", editText2.getText().toString()); mydaHelper dbh = new mydaHelper(Activity01.this,"my database");
得到一個可寫入的數據庫 SQLiteDatabase db = dbh.getWritableDatabase();
將數據寫入 db.insert("user", null, contentValues); } }); button3.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ mydaHelper dbh= new mydaHelper(Activity01.this,"my database"); ContentValues contentValues = new ContentValues(); contentValues.put("name", editText2.getText().toString()); SQLiteDatabase db= dbh.getWritableDatabase();
更新數據庫通過"id=?",new String[]{editText1.getText().toString()}確定要更新的位置 db.update("user", contentValues, "id=?",new String[]{editText1.getText().toString()} ); } }); button4.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ String n = ""; mydaHelper dbh = new mydaHelper(Activity01.this,"my database"); SQLiteDatabase db= dbh.getReadableDatabase();
查詢數據庫幾個參數分別是數據庫的名字,要返回的內容,確定內容的標志比如id,標志內容,其他的不做介紹 Cursor cursor = db.query("user", null, null, null, null,null, null );
//通過指針的移動來確定是不是查詢完畢 while(cursor.moveToNext()){ 得到內容 int id = cursor.getInt(cursor.getColumnIndex("id")); String name = cursor.getString(cursor.getColumnIndex("name")); n += id+" : "+name+"\n";
} 顯示內容 textview.setText(n); } }); button5.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ mydaHelper dbh = new mydaHelper(Activity01.this,"my database"); SQLiteDatabase db = dbh.getWritableDatabase();
刪除表中的內容幾個參數分別是數據庫名字,要刪除的列,列的內容來確定那一列 db.delete("user", "id=?", new String[]{editText1.getText().toString()}); } }); } }</pre>