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的遍歷的資料請關注好吧啦網其它相關文章!
相關文章:
