qq_38839051
qq_38839051
采纳率63.6%
2017-08-05 03:33

Android如何判断SQLite数据库已经存在或不存在

第一次运行APP时,按钮的点击事件会创建SQLite数据库。此后退出系统,然后再重新运行时,(1)如何判断 数据库已经存在,就不创建数据库。(2)如何判断数据库不存在,就创建数据库

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • fight_in_dl 战在春秋 4年前

    Android开发中对SQLite的使用有一套 固定的流程

    由SQLiteOpenHelper类派生一个子类,假设名为MyDBHelper ,并重写OnCreate和OnUpgrade方法。
    生成MyDBHelper的实例后,再调用getWritableDatabase或者getReadableDatabase方法。
    这两个方法都可以创建或者打开一个现有的数据库(如果数据库已存在则直接打开,否则创建一个新的数据库),
    并返回一个可对数据库进行读写操作的对象。之后借助这个对象就可以进行数据库的操作了。

    Android开发方面的书籍或者教程都会涉及到SQLite的这套操作,找一个实例对照看看就更清楚了。

    点赞 2 评论 复制链接分享
  • Code_legend Code_legend 4年前

    你可以把splite写到指定的目录,用文件夹看看是否存在

    点赞 1 评论 复制链接分享
  • Wistorms Cazaea 3年前

    一个简单的方法:

    自己封装个类, 进行SQL语句查询, 如果数据库表不存在抛异常. 返回状态结果, 在每次进入数据库前调用.

    @OnClick(R.id.main_ll_report)
    public void onViewClicked() {
        if (TextUtils.isTableExist(this))
            // 通过盘点状态查询数据库
            queryDataByInventoriedStatus();
        else
            Toast.makeText(this, "数据库不存在,请先更新数据库!", Toast.LENGTH_SHORT).show();
    }
    
    // 判断表是否存在
    public static boolean isTableExist(Context context) {
    
        boolean isTableExist = true;
        SQLiteDatabase database = context.openOrCreateDatabase(AppConfig.Constant.DATABASE_PATH, SQLiteDatabase.OPEN_READWRITE, null);
        try {
            Cursor cursor = database.rawQuery("select * from collateral", null);
            cursor.close();
            database.close();
        } catch (Exception e) {
            // 表不存在, 抛异常
            isTableExist = false;
        }
    
        return isTableExist;
    }
    
    点赞 评论 复制链接分享
  • zch18 zch18 4年前
    点赞 评论 复制链接分享
  • qq_35335131 王的女人 4年前

    Android创建数据库是在sqLiteOpenHelper类的oncreate()方法里面,当第一次进去的时候,还没有数据库,创建好了之后,是不会在执行该方法的。

    点赞 评论 复制链接分享

相关推荐