静下心来,学一下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

最新文章

  1. django 1.10 CSRF验证失败的解决过程
  2. WordPress基础:文章的自定义栏目的使用
  3. 【OPENGL】第三篇 着色器基础(二)
  4. Android WebView 总结 —— Java和JavaScript交互
  5. Android 图片的裁剪与相机调用
  6. BZOJ 3489 A simple rmq problem(可持久化线段树)
  7. English substitute
  8. 【转】select和epoll模型的差异
  9. EF4.0和EF5.0增删改查写法区别
  10. H面试程序(29):求最大递增数
  11. cdn与http缓存
  12. ECSHOP 模版文件里的编辑区域
  13. Java替换字符或十进制数的字符串
  14. 深入理解Plasma(四)Plasma Cash
  15. 结构数组新发现之直接初始化《leetcode-合并区间》
  16. 魔法少女【动态规划问题】——NYOJ1204
  17. 转载一篇debug文章
  18. 让PHPCms内容页支持JavaScript_
  19. HFS的远程命令执行漏洞(RCE)
  20. 第二章.JSP/Servlet及相关技术详解

热门文章

  1. 栅格那点儿事(二)---细看Raster属性
  2. Design Pattern ->Bridge
  3. js报错 object is not a function
  4. Build 2017 | 今儿来说说火得不行的认知服务吧(内附微软开发者大会在线峰会报名地址)
  5. hermite 相关算法整理
  6. 笨办法学Python(十九)
  7. Gameplay Classes
  8. 【css基础修炼之路】— 谈谈元素的垂直水平居中
  9. BZOJ 4247 挂饰 01背包
  10. 整数N分解,搭积木,离散数学中的母函数,ZOJ(1163)