【Android SQLite】
SQLite 简介
SQLite 是一款内置到移动设备上的轻量型的数据库,是遵守 ACID(原子性、一致性、隔离性、持久 性)的关联式数据库管理系统,多用于嵌入式系统中。
SQLite 数据库是无类型的,可以向一个 integer 的列中添加一个字符串,但它又支持常见的类型比如: NULL,VARCHAR, TEXT, INTEGER, BLOB, CLOB 等。
Android 系统内置了 SQLite,并提供了一系列 API 方便对其进行操作。
使用 SQLiteOpenHelper 创建数据库
SQLiteOpenHelper 是 Android 提供的一个抽象工具类,负责管理数据库的创建、升级工作。如果我们 想创建数据库,就需要自定义一个类继承 SQLiteOpenHelper,然后覆写其中的抽象方法。
创建 SQLiteOpenHelper 类
【文件 1-1】 MySQLiteOpenHelper.java
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
private static final String TAG = "MySQLiteOpenHelper";
//定义数据库文件名
public static final String TABLE_NAME = "myuser.db";
/**
* @param context
* @param name 数据库文件的名称
* @param factory null
* @param version 数据库文件的版本
*/
private MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
int version) {
super(context, name, factory, version);
}
// 对外提供构造函数
public MySQLiteOpenHelper(Context context, int version) {
//调用该类中的私有构造函数
this(context, TABLE_NAME, null, version);
}
// 当第一次创建数据的时候回调方法
@Override
public void onCreate(SQLiteDatabase db) {
Log.d(TAG, "onCreate");
//创建数据库表的语句
String sql = "create table t_user(uid integer primary key not null, c_name varchar (20), c_age integer, c_phone varchar(20))";
db.execSQL(sql);
}
// 当数据库升级是回调该方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.d(TAG, "onUpgrade: oldVersion" + oldVersion + " newVersion=" + newVersion);
String sql = "alter table t_user add c_money float";
db.execSQL(sql);
}
// 当数据库被打开时回调该方法
@Override
public void onOpen(SQLiteDatabase db) {
Log.d(TAG, "onOpen");
}
}
注意:
上面的代码我们只是定义了一个 MySQLiteOpenHelper 类继承了 SQLiteOpenHelper 类。在 onCreate()方法中通过执行 sql 语句实现表的创建。
使用 SQLiteOpenHelper 类
在 Activity 中可以执行如【文件 1-2】所