Android 游标

古人学问无遗力,少壮工夫老始成。这篇文章主要讲述Android 游标相关的知识,希望能为你提供帮助。
静下心来,学一下android的数据库连接。
【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

    推荐阅读