栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

SQLite数据库

SQLite数据库

一、SQLite数据库基础 参考教程

        SQLite 教程 | 菜鸟教程

Android Studio保存并查看SQLite数据库文件

        【Android】AndroidStudio3.0+保存并查看SQLite数据库文件_midnight_time的博客-CSDN博客_androidstudio查看数据库

使用Android Studio的Database Navigator插件查看SQLite数据库

        (1)找到File -> Setting -> Plugins 搜索插件Database Navigator,安装该插件;

        (2)Android Studio右下角有个Device FileExplorer(若没有找到,则进行第3步,调出Device FileExplorer),进入/data/data/com.example.databaseset/databases/目录下,可以看到已经有了一个Usr.db文件(前提是你已经创建了一个数据库);

        (3)若第2步中未找到Device FileExplorer,则按如下图示操作:

        (4)右键点击databases文件,下载整个文件;

        (5)安装了Database Navigator插件后,Android Studio左边缘会有一个DB Browser工具,点击它进入,再点击左上角"+"号,添加SQLite数据库连接,配置时选择你下载的db数据库文件,就可以查看这个数据库啦;

SQLiteOPenHelper类 1. onUpgrade的两种更新方式

        SQLite数据库升级的时候会走SQLiteOpenHelper的onUpgrade回调,那么在这里就有两种实现思路。

        1. 保证onCreate中的建表语句是最新的,然后在onUpgrade回调的时候,进行四个步骤:

    (1)保存旧数据
    (2)删除过时的表
    (3)创建表
    (4)将旧数据保存回新的表

        代码实现大概如下:

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        saveDataToList(db, oldVersion, newVersion);
        dropTable(db, oldVersion, newVersion);
        onCreate(db);
        insertDataToDB(db, oldVersion, newVersion);
    }

         2. 这是《第一行代码》中的做法,这也是升级数据库的最佳写法,就是在onUpgrade中使用switch判断oldVersion,对每个版本分别处理,但每个版本处理完都不写break,这样保证数据库无论从哪个版本开始升级,都能升级到最终的版本。代码实现大致如下:

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        switch (oldVersion){
        case 1:
            db.execSQL(CREATE_SQL_2);
        case 2:
            db.execSQL(CREATE_SQL_3);
        default:
        }
    }

那么问题来了,哪种方案才是最佳写法呢?
        第一种,对于最新的数据库结构一目了然,但是在版本更新的过程中难免会出现各版本数据表字段不一致的情况,这种写法在临时存数据和重新写回数据库时可能会出现混乱。
        第二种,对于数据库升级过程一目了然,但是数据库更新的多了,最终的结构必然会不容易一眼看穿。

2. SQLiteOpenHelper构造函数version参数的使用

         (1)首先要了解数据库的更新,即onUpgrade()函数,我们把对数据库结构修改的操作放在onUpgrade()函数中,即添加数据表、修改数据表结构、删除数据表等操作;

         (2)要对数据库结构进行修改,就要执行onUpgrade()函数,什么情况下会调用该函数呢?这就要说到version参数了,当前数据库是有一个version值的,创建DBHelper时,也有一个参数是要填入version值的,当创建的DBHelper对象的version值高于当前数据库的version值时,就会执行onUpgrade()函数,从而修改数据库结构;

3. 各方法被调用的时机

        onCreate(SQLiteDatabase db) :当数据库被首次创建时执行该方法,一般将创建表等初始化操作在该方法中执行。

        onUpgrade(SQLiteDatabse dv, int oldVersion,int new Version):当打开数据库时传入的版本号与当前的版本号不同时会调用该方法。

        除了上述两个必须要实现的方法外,还可以选择性地实现onOpen 方法,该方法会在每次打开数据库时被调用。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/303596.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号