【 Android 】Android 使用 SQLite

1.  SQLite : 以android的角度來說,是一個內建名為SQLite的關聯式資料庫引擎(Relational database engine); 而android應用程式的開發者則採呼叫API的方式來SQLite作溝通,同時,SQLite當中的資料庫是以單一檔案的方式儲存在手機硬體當中。

2.  Android開發不需另行安裝,只需要直接調用就好
3. 最大支援到2T bytes


step 1:

先建立一個class叫作DBHelper 並繼承SQLiteOpenHelper,建立完後產生code之後如下:
public class DBHelper extends SQLiteOpenHelper{

final String createTable = 
"CREATE TABLE iGauge " + 
"(_id INTEGER PRIMARY KEY AUTOINCREMENT, " + 
"name TEXT, mac TEXT, value TEXT)";    //資料表格式
public DBHelper(Context context, String name, CursorFactory factory,int version) {
       super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase db) {
       db.execSQL(createTable); //建立"createTable"這個資料表
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}


}

step 2:

建立控制介面:

private DBHelper dbhelper;

private SQLiteDatabase db;

dbhelper = new DBHelper(this, "test", null, 1);

db = dbhelper.getReadableDatabase();


step 3:

即可操作下列動作: 查詢、新增、更新、刪除

private void add(){
ContentValues values = new ContentValues();
values.put("name", nameEdit.getText().toString());
values.put("tel", telEdit.getText().toString());
values.put("birthday",bdEdit.getText().toString());
db.insert("cust", null, values);
}
private void update(String id){
ContentValues values = new ContentValues();
values.put("name", nameEdit.getText().toString());
db.update("cust", values, "_id = ? ", new String[]{id});
}
private void delete(String id){
//db.delete("cust", "name="+nameEdit.getText().toString(), null);
// DELETE FROM cust WHERE _id = 3 and name = 'Brad'
db.delete("cust", "_id = ? ", new String[]{id});
}
private void query(){
Cursor c = db.query("cust", null, null, null, null, null, null);
result.setText("Num: "+c.getCount()+"\n");
while(c.moveToNext()){
              result.append(c.getString(c.getColumnIndex("_id"))+":"+
              c.getString(c.getColumnIndex("name"))+":"+
              c.getString(c.getColumnIndex("tel"))+":"+
              c.getString(c.getColumnIndex("birthday"))+"\n");
        }

}

step 4:

資料庫使用完需關掉

if(db.isOpen()){
db.close();

}

對於android開發人員來說,若之前沒接觸過SQLite,在使用上會感覺非常抽象的,可以將它想像成excel表格,經由上述範例實作出來會像下圖一樣:



留言

這個網誌中的熱門文章

【 Android 】控制ImageView大小&位置

【 Android 】利用file取得資料夾內檔案

【 Android 】防止系統進入休眠和螢幕恆亮