Android 数据存储
2010-04-10 04:46:00 来源:WEB开发网核心提示:title = 'haiyang'", null); setTitle("删除title为haiyang的一条记录"); } catch (SQLException e) { } } /* * 在屏幕的title区域显示当前数据表当中的数据的条数, */ /* * Curs
title = 'haiyang'", null); setTitle("删除title为haiyang的一条记录"); } catch
(SQLException e) { } } /* * 在屏幕的title区域显示当前数据表当中的数据的条数。 */ /* * Cursor cur =
db.query(TABLE_NAME, col, null, null, null, null, null)语句将查询到的数据放到一个Cursor
当中。这个Cursor里边封装了这个数据表TABLE_NAME当中的所有条列。
query()方法相当的有用,在这里我们简单地讲一下。第一个参数是数据库里边表的名字,比如在我们这个例子,表的名字就是TABLE_NAME,也就是"diary"。第二个字段是我们想要返回数据包含的列的信息。在这个例子当中我们想要得到的列有title、body。我们把这两个列的名字放到字符串数组里边来。第三个参数为selection,相当于SQL语句的where部分,如果想返回所有的数据,那么就直接置为null。第四个参数为selectionArgs。在selection部分,你有可能用到“?”,那么在selectionArgs定义的字符串会代替
selection中的“?”。 第五个参数为groupBy。定义查询出来的数据是否分组,如果为null则说明不用分组。第六个参数为having
,相当于SQL语句当中的having部分。第七个参数为orderBy,来描述我们期望的返回值是否需要排序,如果设置为null则说明不需要排序。 */
private void showItems() { SQLiteDatabase db =
mOpenHelper.getReadableDatabase(); String col[] = { TITLE, BODY }; //查询数据 Cursor
cur = db.query(TABLE_NAME, col, null, null, null, null, null); Integer num =
cur.getCount(); setTitle(Integer.toString(num) + " 条记录"); } }
四.内容提供器(Content provider)方式
在Android的设计“哲学”里是鼓励开发者使用内部类的,这样不但使用方便,而且执行效率也高。
1.什么是ContentProvider
数据在Android当中是私有的,当然这些数据包括文件数据和数据库数据以及一些其他类型的数据。难道两个程序之间就没有办法对于数据进行交换?解决这个问题主要靠ContentProvider。
一个Content Provider类实现了一组标准的方法接口,从而能够让其他的应用保存或读取此Content Provider的各种数据类型。也就是说,一个程序可以通过实现一个Content Provider的抽象接口将自己的数据暴露出去。外界根本看不到,也不用看到这个应用暴露的数据在应用当中是如何存储的,或者是用数据库存储还是用文件存储,还是通过网上获得,这些一切都不重要,重要的是外界可以通过这一套标准及统一的接口和程序里的数据打交道,可以读取程序的数据,也可以删除程序的数据,当然,中间也会涉及一些权限的问题。
更多精彩
赞助商链接