目录
10.数据存储技术(三)
3.数据库存储
Android系统集成了一个轻量级的关系数据库——SQLite 它不像Oracle、MySQL和SQL Server等那样专业,但是因为它占用资源少,运行效率高、安全可靠、可移植性强,并且提供零配置运行模式,所以适用于在资源有限的设备(如手机和平板电脑等)上进行数据存取。
在开发手机应用时,一般会通过代码来动态创建数据库,即在程序运行时,首先尝试打开数据库。如果数据库不存在,则自动创建数据库,然后再打开该数据库。下面介绍如何通过代码来创建以及操作数据库。
3-1.创建数据库
在Andrid的SQLite数据库中,提供了两种创建数据库的方法。
1.使用openOrCreateDatabase方法创建数据库
Android提供了SQLiteDatabase,SQLiteDatabase 表示一个数据库,应用程序只要获得了代表数据库的SQLiteDatabase对象,就可以通过SQLiteDatabase对象来创建数据库。SQLiteDatabase 对象提供了openOrCreateDatabase() 方法来打开或创建一个数据库,语法如下:
static SQLiteDatabase openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)
◆path:用于指定数据库文件;
◆factory:用于实例化一个游标。
注: 游标提供了 一种从表中检索数据并进行操作的灵活手段,通过游标可以一 次处理查询结果集中的一行,并可以对该行数据执行特定操作。
例如,使用openOrCreateDatabase()方法创建一个名称为user.db的数据库的代码如下:
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase("user.db", null);
2.通过SQLiteOpenHelper类创建数据库
在Android中,提供了一个数据库辅助类SQLiteOpenHelper。在该类的构造器中,调用Context 中的方法创建并打开一个指定名称的数据库。在应用这个类时,需要编写继承SQLiteOpenHelper类的子类,并且重写onCreate()和onUpgrade()方法。
3-2.数据操作
最常用的数据操作是指添加、删除、更新和查询。对于这些操作程序开发人员完全可以通过执行SQL语句来完成。但是这里推荐使用Android提供的专用类和方法来实现。SQLiteDatabase 类提供了insert()、update()、delete()和query()方法,这些方法封装了执行添加、更新、删除和查询操作的SQL命令,所以可以使用这些方法来完成对应的操作,而不用编写SQL语句了。
(1)添加操作
SQLiteDatabase类提供了insert() 方法用于向表中插入数据。insert() 方法的基本语法格式如下:
public long insert (String table, String nullColumnHack, ContentValues v