当应用程序需要处理的数据量比较大时,为了更加合理地存储、管理、查询数据,我们往往
使用关系数据库来存储数据。Android平台为开发者提供了sqlite数据库相关的API来实现对数据
库操作的支持,开发人员可以很方便地使用这些API来对sqlite数据库进行创建、修改及查询等
操作。Android系统的很多用户数据,如联系人信息、通话记录、短信息等,都是存储在sqlite
数据库当中的,所以利用操作sqlite数据库的API可以同样方便地访问甚至修改这些数据。本节
将从认识sqlite数据库开始来逐步介绍如何在Android程序中使用sqlite数据库。
9.2.1 sqlite 数据库介绍
sqlite是D. Richard Hipp用C语言编写的开源嵌入式数据库引擎。它是完全独立的,不具有
外部依赖性。sqlite非常健壮,其创建者保守地估计sqlite可以处理每天多达100 000次点击率的Web站点,有时候甚至可以处理上述数字的10倍负载。最重要地,sqlite是一个轻量级的数据库, 1
在一些简单语句的处理性能上比MysqL或Postgresql都要快。对于内存有限的Android手持设备而
言,当然是对时间空间要求越低的数据库引擎越好。
从功能上看,sqlite支持多数sql92标准,可以在所有主流的操作系统上运行,并且支持大
多数计算机语言。其数据库单文件的特性也使得在Android中操纵数据库更加灵活,另外sqlite
特有的内存数据库还会在某些特殊的情况下发挥奇妙的作用。更多有关sqlite数据库的内容,请
访问sqlite官方网站:http://www.sqlite.org/ 。 9.2.2 创建/打开sqlite 数据库 在Android中我们通过sqliteDatabase这个类的对象操作sqlite数据库。由于sqlite数据库 并不需要像C/S数据库那样建立连接以及身份验证的特性,以及sqlite数据库单文件数据库的特 性,使得获得sqliteDatabase对象就像获得操作文件的对象那样简单。 要创建或打开一个sqlite数据库,可以直接调用sqliteDatabase的静态方法:sqlite- Database openDatabase (String path,sqliteDatabase.CursorFactory factory,int flags),来打开文件系统中位于绝对路径path的数据库。可以给出一个CursorFactory对象 factory用于查询时构造Cursor的子类对象并返回,或者传入null使用默认的factory构 造。参数flags用于控制打开或创建的模式,多个模式组合用|隔开,flags可用的值均为 sqliteDatabase类中定义的整型常量。