古人学问无遗力,少壮工夫老始成。这篇文章主要讲述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
推荐阅读
- 利用 android mediaRecorder c++类进行视频编码
- android之GMS认证
- webservice有关application/xop+xml的异常
- netapp网络接口聚合的3种模式
- 一键将Web应用发布到云-Azure Web App
- Another app is currently holding the yum lock; waiting for it to exit 解决方法
- Android之Activity之间传递对象
- Mybatis Mapper.java和Mapper.xml能否分离问题
- Win1064位正式版下移除微软OneDrive的技巧