android - 获取数据库路径

标签 android database

我是 android 新手,我想用 SQLite 创建一种 CRUD。

我有一个 public class DataBaseHelper,它有一个构造函数:

public DataBaseHelper(Context context)
{
    this.context = context;
}

还有一个获取数据库的方法:

public SQLiteDatabase getDataBase() {
    if (dataBase == null) {
        try {
            dataBase = context.openOrCreateDatabase(DataBaseHelper.dbName,
                                                    Context.MODE_PRIVATE, null);

            dataBase.execSQL("CREATE TABLE " + DataBaseHelper.accountTblName + " " +
                                        "(ID integer PRIMARY KEY AUTOINCREMENT" +
                                        ",name TEXT" +
                                        ",address TEXT" +
                                        ",password TEXT)");
            }
            catch(Exception e) {
                Log.e(context.toString(), e.getMessage());

                if (dataBase != null) {
                    dataBase.close();
                }
            }
    }       
    return dataBase;
}

如果我是第一次启动一个程序 - 一切似乎都很好。数据库为空,我创建它(使用表)。但是当我重新启动时,我的应用程序数据库再次为空,并且无法创建表。

我决定编写一个 checkDB 函数,它试图打开一个数据库。但是我在哪里可以找到它的路径?我不希望它被“硬编码”。

或者我可能在做某种反模式?

最佳答案

您可以通过context.getDatabasePath(DataBaseHelper.dbName)

获取路径

关于android - 获取数据库路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9810430/

相关文章:

java - 在生成的 TextView 上以编程方式设置边距时出错

android - 如何添加指向 Switch 小部件文本的链接?

python - 在 MongoDB 中保存位数组

sql - 为数据库中的所有表生成创建表 SQL 脚本

mysql - 获取整行每个类别中某列的最大值

java - Android sqlite 列未找到错误

android - 如何制作跳跃标尺

Android FragmentManager 在清除 fragment 时调用 onCreateView

Android:如何检查 ScrollView 内的 View 是否可见?

python - 如何在 Python Peewee ORM 中选择二阶 ForeignKeyField 的位置?