Android SQLite 创建数据库
经过前面章节的学习,我们对 SQLite
已经有一个不小的了解了,说白了,它就是一个嵌入式数据库
本章我们来学习如何在 Android
中创建一个 SQLite
数据库
使用 SQLiteOpenHelper 类创建数据库与版本管理
SQLite 数据库不是普通文件,我们几乎不可能先手动的去创建一个,当然也没这个必要,因为 Android
提供了几个帮助类帮助我们创建和管理 SQLite
SQLiteOpenHelper
是 Android
提供的 SQLite
管理类,它有两个方法
方法 | 说明 |
---|---|
onCreate(database) | 首次使用软件时生成数据库表 |
onUpgrade(database,oldVersion,newVersion) | 在数据库的版本发生变化时会被调用, |
第一个方法用于创建数据库,第二个方法用于升级数据库中的表和数据的版本
为什么要升级 表和数据的版本 呢?
因为我们的应用的数据随着需求的不断添加和修改,会需要修改数据库表的结构,这个时候就需要 对数据库表进行更新了
一般在软件升级时才需改变版本号,而数据库的版本是由程序员控制的,假设数据库现在的版本是 1,由于业务的变更,修改了数据库表结构,这时候就需要升级软件,升级软件时希望 更新用户手机里的数据库表结构
为了实现这一目的,可以把原来的数据库版本设置为 2
或者其它与旧版本号不同的数字即可
但一般情况下我们不直接使用 SQLiteOpenHelper.java
而是选择继承它并重写方法
public class MsDBOpenHelper extends SQLiteOpenHelper { public MyDBOpenHelper(Context context, String name, CursorFactory factory, int version) {super(context, name, null, version); } @Override //数据库第一次创建时被调用 public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE lang(id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20))"); } //软件版本号发生改变时调用 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("ALTER TABLE lang ADD rank INTEGER '0'"); } }