sqlite數(shù)據(jù)庫介紹:
文件數(shù)據(jù)庫:它可以將數(shù)據(jù)庫的所有表、索引、 視圖等存儲一個單獨(dú)的文件里
數(shù)據(jù)規(guī)模:
記錄數(shù)目 ? ? ? ? ? ?存儲方式
?100 –1萬 ? ? ? ? ? ? ?SQLite (本地文件)
使用場景:
假設(shè)有這樣一張表,統(tǒng)計(jì)每個用戶每天的登錄次數(shù)userinfo:
username??? time??? type??? count
張三???????????? 4號????? 1????????? 5
張三???????????? 6號????? 3????????? 4
張三???????????? 11號???? 1???????? 11
李四???????????? 11號???? 1????????? 9
其中type表示星期幾,count表示該天的登錄次數(shù),
比如第一條表示張三在4號(星期一)登錄了5次,
如果我們要計(jì)算某個用戶各個工作日的登錄次數(shù),可以用如下一條語句:
select sum(case when type=0 then count else 0 end) as sum_sunday,
? ? sum(case when type=1 then count else 0 end) as sum_monday,
? ? ...
? ? from userinfo where username='張三';
代碼使用:
1、DBHelper 繼承SQLiteOpenHelper
2、構(gòu)造函數(shù):
public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSIONCODE);
}
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
super(context, name, factory, version, errorHandler);
}
3、實(shí)現(xiàn)onCreate方法,完成創(chuàng)表操作
@Override
public void onCreate(SQLiteDatabase db) {
//實(shí)現(xiàn)數(shù)據(jù)庫的創(chuàng)表操作
? ? String sql="create table "
? ? ? ? ? ? +TABLE_NAME +" (_id integer primary key autoincrement, "
? ? ? ? ? ? +CITY_NAME +" varchar,"
? ? ? ? ? ? +ROOM_TITLE+" text ,"
? ? ? ? ? ? +PRICE+" varchar) ";
? ? db.execSQL(sql);
}
4、實(shí)例化DBHelper對象,通過DBHelper對象調(diào)用getWritableDatabase()完成數(shù)據(jù)庫的創(chuàng)建
DBHelper dbHelper=new DBHelper(this);
SQLiteDatabase dbDataBase=dbHelper.getWritableDatabase();
5、數(shù)據(jù)庫的增刪改查
dbDataBase.insert();
dbDataBase.delete();
dbDataBase.update();
dbDataBase.query();
可以寫一個布局:
設(shè)置四個按鈕,每個按鈕對應(yīng)一個功能,測試數(shù)據(jù)庫的增刪改查。