qq_38839051 2017-08-05 03:33 采纳率: 63.6%
浏览 5250
已采纳

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

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

  • 写回答

5条回答 默认 最新

  • 战在春秋 2017-08-05 06:47
    关注

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

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 王的女人 2017-08-05 05:27
    关注

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

    评论
  • 五道口老炮儿 2018-01-08 02:56
    关注

    一个简单的方法:

    自己封装个类, 进行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;
    }
    
    评论
  • Code_legend 2017-08-05 04:26
    关注

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

    评论
  • 西西特下饭 2017-08-05 07:25
    关注
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 微信实时共享位置修改
  • ¥100 TG的session协议号转成直登号号后客户端登录几分钟后自动退出设备
  • ¥30 共模反馈回路的小信号增益
  • ¥15 arduino ssd1306函数与tone函数放歌代码不兼容问题
  • ¥70 0.96版本hbase的row_key里含有双引号,无法deleteall
  • ¥20 Ida Pro增加插件出现问题
  • ¥15 诊断性META分析合并效能的检验
  • ¥15 请问abb根据色块判断奇偶数并根据批次号放入仓储
  • ¥66 开发PC客户端一定也要开发上位机吗?
  • ¥20 Java eclipse连接数据库