前面介绍过文件存储和SharedPreferences存储,这两种方式只适合存储一些简单的数据,当需要存储大量的复杂数据的时候就需要用到SQLite数据库了。
Android专门提供了一个SQLiteOpenHelper类来帮助创建和升级数据库。SQLiteOpenHelper类是一个抽象类,类里面有两个抽象方法:onCreate()和onUpgrade(),一个用来创建数据库,一个用来升级数据库。由于它是一个抽象类,所以我们在使用它时需要创建一个自己的类去继承它,并重写类里面的两个方法。
SQLiteOpenHelper类中还有两个非常重要的实例方法:getReadableDatabase()和getWritableDatabase()。这两个方法都可以创建或打开一个数据库(如果数据库已存在则直接打开,如果不存在则创建一个数据库)。这两个方法的区别在于当数据库不可写入(比如磁盘空间已满)时,使用getWritableDatabase()方法将出现异常。
SQLiteOpenHelper类有两个构造方法,一般选择参数较少的方法即可。该构造方法接收4个参数,第一个参数是Context,第二个参数是数据库名,第三个参数在我们查询数据的时候可以返回一个自定义的Cursor,一般传入null即可,第四个参数是当前数据库的版本号,可用于对数据库进行升级操作。
1.创建数据库
首先创建一个MyDatabaseHelper类继承SQLiteOpenHelper类,代码如下:
public class MyDatabaseHelper extends SQLiteOpenHelper{
public static final String CREATE_BOOK = "create table Book("
+"id integer primary key autoincrement,"
+"author text,"
+"price real,"
+"panges integer,"