SQLite简介
- SQLite是安卓系统中内置的轻量级的数据库,可以应用于数据的存储,比之文件存储和SharePreference存储数据,具有更加的灵活性,存储量更大,数据也更加复杂。
创建数据库
- android为了然我们更加方便的管理数据库,专门提供了一个SQLiteOpenHelper帮助类,借助这个类就可以非常简单地对数据库进行创建和升级。
- SQLiteOpenHelper中有两个非常重要的实例方法:getReadableDatabase()和getWritableDatabase()
- 创建数据库的代码如下:
public class MyDatabaseHelper extends SQLiteOpenHelper {
private Context context;
public static final String CREATE_STUDENT="create table book(id integer primary key autoincrement,name text,age integer,clazz text)";
public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
this.context=context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_STUDENT);
Toast.makeText(context, "数据库创建成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
- public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
- 其中的四个参数为主线程的引用,数据库的名称,自定义的cursor对象,数据库的版本号,版本号最小为1
- 创建数据库的代码
myDatabaseHelper=new MyDatabaseHelper(this,"school.db",null,1);
myDatabaseHelper.getWritableDatabase();
- 当创建了数据库之后,重复执行上面的代码,不会重复创建。
升级数据库
- 如果我们要添加一张表到上面的数据库中,我们就要升级数据库了。
- 注意在onUpgrade()方法中代码的填写
- 相应的代码如下:
public class MyDatabaseHelper extends SQLiteOpenHelper {
private Context context;
public static final String CREATE_STUDENT="create table book(id integer primary key autoincrement,name text,age integer,clazz text)";
public static final String CREATE_HELLOWORD="create table helloword(id integer primary key autoincrement,name text,age integer,clazz text)";
public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
this.context=context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_STUDENT);
db.execSQL(CREATE_HELLOWORD);
Toast.makeText(context, "数据库创建成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists book");
db.execSQL("drop table if exists helloword");
Toast.makeText(context, "升级成功", Toast.LENGTH_SHORT).show();
onCreate(db);
}
}
- 同时在逻辑代码中,创建数据库的时候,我们要将数据库的版本号更改为比上一次大的数据,这样就会执行onUpgrade()方法中的代码了
myDatabaseHelper=new MyDatabaseHelper(this,"school.db",null,3);
db=myDatabaseHelper.getWritableDatabase();
adb shell查看数据库数据
- adb是Android SDK中自带的一个工具,使用这个工具,可以直接对模拟器或手机进行调试。他存放在sdk的platfrom-tools目录下,需要把它的路径配置到环境变量中。
将其路径配置到path系统变量中。
查看数据库内容的代码示例: