Android 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:
- 构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。
- onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。
- onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。
创建数据库步骤:
- 继承SQLiteOpenHelper
- 实现onCreate和onUpgrade方法
- 重新构造器
- 在onCreate创建sql语句
- 执行sql
- 关闭数据库
DatabaseHelper.java
package com.example.android_sqlite.database;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
/**
*
* @param context
* :上下文对象
* @param name
* :数据库名称
* @param factory
* :cursor工厂对象,可以设置null.采用默认的CursorFactory对象
* @param version
* :数据库版本号
*/
public DatabaseHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
/**
* 当数据库第一次创建的时候会调用这个方法
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table users(userid integer primary key autoincrement,username varchar(20))");
}
/**
* 当数据库的版本升级的时候,自动调用这个方法(根据数据库的版本号)
*/
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
}
}
测试类
package com.example.android_sqlite.test;
import com.example.android_sqlite.database.DatabaseHelper;
import android.test.AndroidTestCase;
public class DatabaseTese extends AndroidTestCase {
public void createDatabase() {
DatabaseHelper dh = new DatabaseHelper(getContext(), "csdn.db", null, 1);
dh.getWritableDatabase();
}
}
输出结果: