一、SQLite数据库简介
SQLite是一个轻量级数据库,第一个版本诞生于2000年5月。它最初是为嵌入式设计的,占用资源非常低,在内存中只需要占用几百KB的存储空间。
SQLite是遵守ACID关联式的数据库管理系统。ACID是指数据库事务正确执行的基本要素,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
SQLite没有服务器进程,它通过文件保存数据,该文件是跨平台的,可以放在其他平台中使用。并且支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)五种数据类型。
二、SQLite数据库的使用
Android SDK提供了一系列对数据库进行操作的类和接口。常用的数据库操作类有:
SQLiteOpenHelper类
该类是一个抽象类,用于创建数据库和数据库版本更新。
SQLiteDatabase类
该类是一个数据库访问类,封装了一系列数据库操作的API,可以对数据进行增删改查操作。
Cursor接口
是一个游标接口,在数据库操作中作为返回值,相当于结果集ResultSet。
代码建库
使用SQLite代码建库,必须继承SQLiteOpenHelper抽象类,该类无默认构造函数,故子类必须显式调用该类的构造函数。
SQLiteOpenHelper类中常用方法:
getReadableDatabase():创建并(或)打开一个数据库。
getWritableDatabase():创建并(或)打开对其进行读和写的操作一个数据库。
SQLiteDatabase:数据库类,提供一些用于管理SQLite数据库的方法。
execSQL(String sql):执行单条SQL语句。
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASENAME = "test.db" ;
private static final int DATABASERVERSION = 1 ; // 设置数据库的版本
private static final String TABLENAME = "t_words" ;
public MyDatabaseHelper(Context context) { // 用户最关心的也肯定只是Context
super(context, DATABASENAME, null, DATABASERVERSION);
}
@Override
public void onCreate(SQLiteDatabase db) { // 创建数据表
String sql = "CREATE TABLE " + TABLENAME + "("
+ "english VARCHAR(30) PRIMARY KEY ," // 在SQLite中设置为Integer、PRIMARY KEY则ID自动增长
+ "chinese VARCHAR(100) NOT NULL" + ");";
db.execSQL(sql) ; // 执行SQL
System.out.println("****************** 创建:onCreate()。");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS " + TABLENAME ;
db.execSQL(sql) ;
System.out.println("****************** 更新:onUpgrade()。");
this.onCreate(db) ;
}
}

