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

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

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

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

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

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

一个简单的方法:

自己封装个类, 进行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;
}

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

建议你去看看这个http://blog.csdn.net/lizhenmingdirk/article/details/17561471