SQLITE是一个轻量级 嵌入式的关系式的数据库,他遵守ACID的关联式数据库管理系统,主要是针对嵌入式设备设计的数据库 占用的空间非常少。
其实有四个类(接口)贯穿始终
Sqlite.SQLiteDatabase完成数据的CRUD操作已经事务处理。
SQLITEOpenHelper 定义数据库的创建及更新操作类
Curse 保存所有的查询结果
ContentValue 对传递的数值进行封装
数据库操作类:SQLiteDatabase
在Android系统之中,一个android.database.sqlite.SQLiteDatabase类的实例都代表了一个SQLite数据库的操作,通过SQLiteDatabase类可以执行SQL语句,以完成对数据表的增加、修改、删除、查询等操作,在此类之中定义了基本的数据库执行SQL语句的操作方法以及一些操作的模式常量。
数据库操作辅助类:SQLiteOpenHelper
SQLiteDatabase类本身只是一个数据库的操作类,但是如果要想进行数据库的操作,还需要一个android.database.sqlite.SQLiteOpenHelper类帮助下才可以取得进行,但是,SQLiteOpenHelper类是一个抽象类,所以要使用的时候需要定义其子类,并且在子类中要覆写相应的抽象方法。
SQLiteOpenHelper类中定义的回调方法
在SQLiteOpenHelper类中定义了三个回调方法,这三个方法的作用如下:
onCreate():在第一次使用数据库的时候会调用此方法生成相应的数据库表,但是此方法并不是说是在实例化SQLiteOpenHelper类的对象时调用,而是通过对象调用了getReadableDatabase()或getWritableDatabase()方法时才会调用;
onUpgrade():当数据库需要进行升级的时候,会调用此方法,一般可以在此方法之中将数据表删除,并且在删除表之后往往会调用onCreate()方法以重新创建新的数据表;
open():当数据库打开的时候会调用此方法,但是一般情况下用户不需要覆写此方法。
来一个小DEMO玩玩
SQLiteOpenHelper类
package com.example.sqlitesave;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DbOpenHelp extends SQLiteOpenHelper {
private static final String DATABASENAME = "jdk.db" ; // 数据库名称
private static final int DATABASEVERSION = 1 ; // 数据库名称
private static final String TABLENAME = "mytab" ; // 数据表名称
public DbOpenHelp(Context context) {
super(context, DATABASENAME, null, DATABASEVERSION);// 调用父类构造
}
@Override
public void onCreate(SQLiteDatabase db) {// 创建数据表
String sql = "CREATE TABLE " + TABLENAME + " (" +
"id INTEGER PRIMARY KEY ," +
"name VARCHAR(50) NOT NULL ," +
"birthday DATE NOT NULL)";// SQL语句
db.execSQL(sql) ; // 执行SQL语句
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS " + TABLENAME ; // SQL语句
db.execSQL(sql); // 执行SQL语句
this.onCreate(db); // 创建表
}
}
主要Database类
package com.example.sqlitesave;
import android.app.Activity;
import android.os.Bundle;
public class SQLiteDemo extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DbOpenHelp help=new DbOpenHelp(this);
help.getWritableDatabase();
}
}
验证的时候到了 只要到 data/data 然后找到你的APP文件里找找 databases 里面有不有jdk.db