今天要用到sqlite數據庫來保存用戶登陸信息,都快把數據庫知識忘記了,又做了一份有關增、刪、改、查的參數的詳細說明。後來想想做好這個不保存下來實在太可惜了,所以就寫了文章記錄下,以免以後忘了再整理。
public class AccountDB extends SQLiteOpenHelper { private static final String DB_NAME = "message.db"; private static final int DB_VERSION = 1; public AccountDB(Context context) { super(context, DB_NAME, null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String sql = "CREATE TABLE IF NOT EXISTS " + "gd_account" + "(" + "_id" + " INTEGER PRIMARY KEY NOT NULL," + "username" + " VARCHAR(50)," + "password" + " VARCHAR(50)," + "remember" + " BYTE," + "automate" + " BYTE" + ")"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub // 版本更新會調用這個方法 } /** * 添加數據 * @param nullColumnHack 空列的默認值 * @param values ContentValues類型的一個封裝了列名稱和列值的Map * @return */ public long insert(String nullColumnHack, ContentValues values) { SQLiteDatabase wdb = getWritableDatabase(); return wdb.insert("gd_account", nullColumnHack, values); } /** * 更新數據 * @param values 更行列ContentValues類型的鍵值對(Map) * @param whereClause 更新條件(where字句) * @param whereArgs 更新條件數組 * @return */ public int update(ContentValues values, String whereClause, String[] whereArgs) { SQLiteDatabase wdb = getWritableDatabase(); return wdb.update("gd_account", values, whereClause, whereArgs); } /** * 刪除數據 * @param whereClause 刪除條件 * @param whereArgs 刪除條件值數組 * @return */ public int delete(String whereClause, String[] whereArgs) { SQLiteDatabase wdb = getWritableDatabase(); return wdb.delete("gd_account", whereClause, whereArgs); } /** * 查詢數據 * @param columns 要查詢的字段 * @param selection 要查詢的條件 * @param selectionArgs 要查詢的條件中佔位符的值 * @param groupBy 對查詢的結果進行分組 * @param having 對分組的結果進行限制,分組條件 * @param orderBy 對查詢的結果進行排序(“id desc”表示根據id倒序) * @param limit 分頁查詢限制(如”1,3”表示獲取第1到第3的數據共3條, * 如“2”表示獲取兩條數據) * @return */ public Cursor query(String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) { SQLiteDatabase rdb = getReadableDatabase(); return rdb.query("gd_account", columns, selection, selectionArgs, groupBy, having, orderBy, limit); } /** * Cursor遊標接口常用方法: * getCount() 總記錄條數 * isFirst() 判斷是否第一條記錄 * isLast() 判斷是否最後一條記錄 * moveToFirst() 移動到第一條記錄 * moveToLast() 移動到最後一條記錄 * move(int offset) 移動到指定記錄 * moveToNext() 移動到下一條記錄 * moveToPrevious() 移動到上一條記錄 * getColumnIndex(String columnName) 根據列名得到列位置id * getColumnIndexOrThrow(String columnName) 根據列名稱獲得列索引 * getInt(int columnIndex) 獲得指定列索引的int類型值 * getString(int columnIndex) 獲得指定列索引的String類型值 */ } |