数据存储--SQLite创建数据库

来源:互联网 发布:自然之名酵母水 知乎 编辑:程序博客网 时间:2024/05/29 14:58

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系统变量中。

  • 查看数据库内容的代码示例:
    这里写图片描述

0 0