android初學之Sqlite數據庫基本操做(下)

刪除和修改的方法與(上)提到的增長的方法類似,均可以執行sql語句或者直接用ContentValue java

查詢操做 sql

/**
	 * 
	 * 查詢:查詢與其餘不一樣的是:
	 * 1,查詢只要獲取可讀的數據庫就能夠了
	 * 2,增刪改執行sql語句後都沒有返回值,而查詢須要有返回值Cursor
	 * @return
	 */
	public User find(int id){
		SQLiteDatabase db = myhelper.getReadableDatabase(); // 獲取可讀的數據庫,先嚐試獲取可寫的,異常再獲取可讀的
		Cursor c = db.rawQuery("SELECT name, password FROM user WHERE id=?", new String[]{id+""});
		
		/*第二種查詢操做
		
		/**
		 *	最後三個參數:groupBy分組, having分組條件, orderBy排序
		 * 	user表,查詢name和password兩列, 查詢條件是id 
		 */
		Cursor c = db.query("user", new String[]{"name","password"}, "id=?", new String[]{id +""}, null, null, null);
		
		*/
		
		User user = null;
		if(c.moveToNext()){	//將遊標向後移動,返回移動是否成功,判斷是否包含下一條記錄
			String name = c.getString(c.getColumnIndexOrThrow("name"));
//先查到name的索引,在經過索引拿到內容,效率沒下面的高
		//String name = c.getString(0);
		int password = c.getInt(1);
		user = new User(id, name, password);
	}		
		
		return user;
}

在測試類中:(建立類繼承AndroidTestCase,清單文件中配置test節點,方法名以test開頭) 數據庫

public void testCreateDB(){		
	/**
	* 第一次執行,指定環境下沒有數據庫文件:建立數據庫,執行oncreate方法
	* 之後再執行,數據庫存在,版本號沒變:只打開數據庫
	* 數據庫存在,版本號改變:打開數據庫,執行onUpgrade()方法
       */
	MyHelper myhelper = new MyHelper(getContext());	//activity中以getApplicationContext()獲取當前程序環境,測試類中以getContext()獲取環境
	myhelper.getWriteableDatabase();	//獲取可寫的數據庫
}
	
	在這裏執行代碼
	
public void testInsert(){
	UserDao dao = new UserDao(getContext());	//不能定義成全局變量
	dao.insert(new User("xxx",123456));
}

其他的方法與上面的類似,都是經過dao對象來調用方法。 測試

相關文章
相關標籤/搜索