1. 程式人生 > >Android 遊標

Android 遊標

使用 eba 編號 blog 晚安 tab having script str

  靜下心來,學一下Android的數據庫連接。

  1.直接從getReadableDatabase()與getWritableDatabase()入手。

   --getReadableDatabase()會返回一個只讀的數據庫對象。 讀數據庫就用它了。

   --getWritableDatabase()返回一個可寫的數據庫對象。 寫數據庫就用它了。

  區別:用一句話講,getReadableDatabase()會首先問一下--我可以即讀又寫嗎,如果不能,那我可以讀嗎?

  2.獲得遊標的代碼

  

try{
  SQLiteOpenHelper 對象 
=new 該類名的子類也就是目標數據庫(this); SQLiteDatabase db = 對象.getReadableDatabase(); Cursor cursor=db.query("DRINK表名", new String[]{"NAME列名","DESCRIPTION列名","IMAGE_RESOURCE_ID列名"}, "_id=?", new String[]{Integer.toString(drinkNo外部傳過來的一個整數編號)}, null
,null,null //後面三個參數依次是:groupBy,having,orderBy ); //這裏得到了遊標,對遊標進行處理的代碼這裏來寫 }catch(SQLiteException e){ Toast toast=Toast.makeText(this,"Database unavailable",Toast.LENGTH_SHORT); }

  其實就是通過SQLiteOpenHelper類的子類--目標數據庫的一個對象執行getReadableDatabase()函數來產生一個SQLitebase對象db,進而執行db.query(...)

  3.要從遊標讀取記錄,首先需要導航到這個記錄。

   主要有4個主要的方法可以用來在遊標包含的記錄間導航--moveToFirst()--moveToLast()--moveToPrevious()--moveToNext()

   第一個記錄 cursor.moveToFirst()   返回true or false

   最後一個記錄 cursor.moveToLast()   返回true or false

   前一個記錄 cursor.moveToPrevious() 返回true or false

   後一個記錄  cursor.moveToNext()   返回true or false

  4.獲取遊標值

  比如遊標中有這些數據。

  name-->"Latte"

description-->"Espresso and steamed milk"

  image_resource_id-->5454351

  總共3列,你想得到name列的值。 String name==cursor.getString(0);

  然後你想得到image_resesource列的值。 int imageResource=cursor.getInt(2);

  5.關閉遊標和數據庫

   遊標關閉--cursor.close();

   數據庫關閉--db.close();

  6.實際操作

   主要在活動中的oncreate方法中,查詢數據庫返回一個遊標cursor,然後通過if判斷遊標位置是否存在,裏面就具體操作UI界面了,也就是使用遊標中的數據填充視圖。

  

  7.註意點

   在oncreate()方法的結尾,註意要close遊標和數據庫。

   在最後的catch()中,要用Toast向用戶顯示一個消息。

  晚安。2017-7-7 0:22

Android 遊標