項目源碼下載
https://github.com/Wang-Jun-Chao/AndroidProjects
SQLite資料庫
輕量級關係型資料庫
建立資料庫需要使用的api:SQLiteOpenHelper
必須定義一個構造方法:
//arg1:資料庫檔案的名字//arg2:遊標工廠//arg3:資料庫版本public MyOpenHelper(Context context, String name, CursorFactory factory, int version){}
資料庫被建立時會調用:onCreate方法
資料庫升級時會調用:onUpgrade方法
建立資料庫
MyOpenHelper oh = MyOpenHelper(getContext(), , , ); SQLiteDatabase db = oh.getWritableDatabase();
getWritableDatabase():開啟可讀寫的資料庫
getReadableDatabase():在磁碟空間不足時開啟唯讀資料庫,否則開啟可讀寫資料庫
在建立資料庫時建立表
public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL(" person (_id autoincrement, name (), phone (), money ())
資料庫的增刪改查
SQL語句
* person (name, phone, money) (, , );* person name = _id = ;* person money = name = ;* name, phone person name = ;
執行SQL語句實現增刪改查
db.execSQL(, []{, , }); Cursor cs = db.rawQuery(, []{});
測試方法執行前會調用此方法
() Exception { .setUp(); oh = MyOpenHelper(getContext(), , , ); }
使用api實現增刪改查
插入
ContentValues cv = ContentValues(); cv.put(, ); cv.put(, ); cv.put(, ); i = db.insert(, , cv);
刪除
i = db.(, , String[]{, });
修改
ContentValues cv = ContentValues(); cv.put(, ); i = db.update(, cv, , []{});
更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/
查詢
Cursor cs = db.query(, []{, }, , []{}, , , ); (cs.moveToNext()){ name = cs.getString(cs.getColumnIndex()); money = cs.getString(cs.getColumnIndex()); System.out.println(name + + money); }
事務
保證多條SQL語句要麼同時成功,要麼同時失敗
最常見案例:銀行轉賬
事務api
try { dbbeginTransaction(); dbsetTransactionSuccessful(); } finally{ dbendTransaction(); }
把資料庫的資料顯示至螢幕
任意插入一些資料
定義業務bean:Person.java
讀取資料庫的所有資料
Cursor cs = db.query(, , , , , , ); (cs.moveToNext()){ name = cs.getString(cs.getColumnIndex()); phone = cs.getString(cs.getColumnIndex()); money = cs.getString(cs.getColumnIndex()); Person p = Person(name, phone, money); people.add(p); }
把集合中的資料顯示至螢幕
LinearLayout ll = (LinearLayout) findViewById(R.id.ll); (Person p : people){ TextView tv = TextView(); tv.setText(p.toString()); ll.addView(tv); }
分頁查詢
Cursor cs = db.query(, , , , , , , );