Android sqlite cursor的遍歷實例詳解
查詢並獲得瞭cursor對象後,用while(corsor.moveToNext()){}遍歷,當corsor.moveToNext()方法調用,如果發現沒有對象,會返回false
public List<MMImage> getAll() { List<MMImage> list = new ArrayList<MMImage>(); Cursor c = null; try { c = database.query(TABLE, null, null, null, null, null, null); while (c.moveToNext()) { MMImage mmImage = getMMImageFromCursor(c); list.add(mmImage); } } catch (Exception e) { e.printStackTrace(); } finally { if (c != null) { c.close(); } } return list; }
知識點內容擴展:
寫android的時候,涉及到sqlite的知識,所以自己想搞一個Demo學習一下,看瞭相關的教程和幫助文檔,然後開始動手寫自己的程序
//1.獲取SQLiteDatabase的對象 SQliteDataBase sqlite = SQliteDatabase.openOrCreateDatabase(new File(Environment.getExternalStorageDirectory() + "\testDB"),null); //2.向數據庫中存入數據 sqlite.execSQL("create table student(id varchar2(10),name varchar2(20),sex varchar2(2)"); sqlite.execSQL("insert into student values(?,?,?)", new String[] {"2013111111", "Tom", "M" }); //3.從sqlite中讀取數據 Cursor cursor = sqlite.rawQuery("select * from student", null); //輸出列名 for (int i = 0; i < cursor.getColumnCount(); i++) { textView.append(cursor.getColumnName(i) + '\t'); } textView.append("\n"); //開始讀取其中的數據 if (cursor.moveToFirst()) { do { textView.append(cursor.getString(0) + '\t' + cursor.getString(1) + '\t' + cursor.getString(2) + '\n'); } while (cursor.moveToNext()); }
看起瞭很簡單,但是我當時在使用cursor的時候忘瞭定位cursor,因為在查詢之後返回的是一個結果集,也就是一張二維表,如果我們直接調用getString(int ColumnIndex)的話,就會報錯,因為光標不能夠確定你要返回哪一行的數據,從而我們在使用Cursor的時候,註意定位光標。
以上就是Android sqlite cursor的遍歷實例詳解的詳細內容,更多關於Android sqlite cursor的遍歷的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- Android操作SQLite基本用法
- Android Kotlin使用SQLite案例詳解
- android studio數據存儲建立SQLite數據庫實現增刪查改
- Android中ListView使用示例介紹
- Android中的存儲詳解