SQLiteOpenHelper的一些用法,關增、刪、改、查參數的說明

    今天要用到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類型值
	 */
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章