Android系統內建「SQLite」資料庫,它是一個開放的小型資料庫,儲存資料的數量是根據裝置的儲存空間決定的,今天來撰寫個基本的小程式來熟悉資料庫的讀寫。
這次也順便嘗試button事件另一種寫法,先前在
button基礎練習篇有看到那時的寫法是用一個Listener來偵測button有沒有被按下,但有些書上還會要我們在mail主檔上的button加入
android:onClick=這個描述既然都有Listener來偵測那幹嘛還要加入這個描述就算拿掉指令也OK,其實這是兩種寫法
1.用Listener去偵測事件
2.直接用button的佈局檔來描述
其實兩種都能達成我們的目的
這一次我們就用第二種我認為比較簡單的方法寫看看

上圖為這次的佈局兩個button和一個Textview
這次我們在布局檔中加上onclick描述
然後我們要先來學習如何創建資料庫(以下稱為DB),在oncreate的階段我們就必須把DB創建完成,
創建一個資料表(以下稱為TB),欄位為name、phone、mail
db=openOrCreateDatabase(dbname, Context.MODE_PRIVATE,null);
//建立資料庫名稱模式為私人模式String createTable="CREATE TABLE IF NOT EXISTS "+
tbname+
"(name VARCHAR(32),"+
"phone VARCHAR(16),"+
"mail VARCHAR(64))";
db.execSQL(createTable);//創建並定義資料表架構
public void readData(View view){//負責讀取
String str="";
displayData("I am read data");
Cursor cursor=db.rawQuery("SELECT * FROM "+tbname,null);
if(cursor.getCount()==0){
displayData("tb is null");
return;
}
if(cursor.moveToFirst()){
do{
str+="name:"+ cursor.getString(0)+"\n";
str+="phone:"+ cursor.getString(1)+"\n";
str+="mail:"+ cursor.getString(2)+"\n";
str +="\n";
}while (cursor.moveToNext());//逐行讀取
}
displayData(str);//顯示資料
}
public void writeData(View view){
displayData("I am write data");
addData("linrichard", "0980416449", "linrichard@yahoo.com.tw");
}
private void displayData(String message) {
TextView print=(TextView) findViewById(R.id.textView);
print.setText(message);
}
private void addData(String name, String phone, String mail) {
ContentValues hm =new ContentValues();
hm.put("name",name);
hm.put("phone",phone);
hm.put("mail",mail);
db.insert(tbname,null,hm);
}
上面可以看到writeData和readData的傳入參數都是設為view這樣就能完成事件連結,這裡分成讀取跟寫入
讀取:用cursor物件下達查詢指令如果裡面有資料則移動到第一筆用do-while逐行讀出並在display函數負責顯示
寫入:用ContentValues("key",value)將資料insert進資料庫中
以下為結果畫面
資料表為空則顯示tb is null
寫入
讀取
如果要清理資料庫資料可在App管理中clear data