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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值