问题标签 [sqliteopenhelper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
247 浏览

android - 当数据库被不同的作家关闭时“数据库未打开”

Fragments我的应用程序中有很多ViewPager。在应用程序启动时,其中三个尝试连接到数据库以检索数据。

对于数据库处理,我使用带有SQLiteOpenHelper. 当我需要我的数据库时,我这样称呼它:SQLiteDatabase db=DatabaseHelper.getInstance(this.getContext()).getWritableDatabase();.

问题:

如果我不关闭数据库,db.close()android.database.sqlite.DatabaseObjectNotClosedException当然会得到一个。所以我愿意。但由于它是一种单例方法,当我的一个片段完成获取数据时,它会关闭数据库并且其余片段无法使用它。

当我从中读取某些内容时,检查数据库是否在每次迭代中都打开似乎非常多余。我还可以做些什么?

0 投票
4 回答
435 浏览

android - 为什么只尝试从表中查询一列时出现 _id 不存在错误?

我试图用一些代码解决昨天为什么会出现此错误的问题:

我有更多的代码,尤其是我不需要的,所以我去掉了很多代码,以便更容易理解我哪里出错了。但本质上这是我的架构:

可以说,看起来不错。除非我忘记阅读,否则它显然就在那里。但后来我弄清楚了我的错误来自哪里,或者至少我确定这就是原因。检索游标的这段代码:

根据android,这是错误。当我将其更改为:

一切都是桃色的。当前者时,它会崩溃。关于为什么会这样的任何原因。我认为在 rawQuery() 中我可以做到这一点。只要我不包括 where 子句,我就没有。非常感谢任何帮助。

0 投票
4 回答
1057 浏览

android - Android:创建 SQLite 数据库和表的最佳位置是什么

我必须在我的 android 应用程序中创建近 5-6 个表。创建 SQLite 数据库和 5-6 个表的最佳位置是什么?我可以在初始活动启动时编写所有这些逻辑(使用 SQLite 开放辅助方法),但如果我这样做,它将在每次初始活动启动时被调用。这意味着每次应用程序启动时都会执行这些数据库和表的创建逻辑。任何人都可以告诉最佳实践来做到这一点。

0 投票
1 回答
920 浏览

java - 使用 ORMLite for Android 存储在内存数据库中

我正在为安卓开发一个应用程序。我有一个 Web 服务,我将在其中进行数据库查询和存储。在应用程序的开头,我想通过 REST 调用从 Web 服务加载某些数据并将其存储在本地数据库中,最好是 ORM。我找到了 ORMLite 并且喜欢它的使用方式,但我想知道如何将数据库存储在内存中,以便在应用程序退出时擦除数据。

当我使用

如文档中所述,它会引发 runtimeException。任何有关如何完成此操作或其他方式的建议将不胜感激。

0 投票
0 回答
2679 浏览

android - SQLiteOpenHelper getWritableDatabse() 失败,没有异常

我有一个非常奇怪的问题。它只在几个设备上不时显示。似乎无法在我想要的时候重现它,但有过很多次,我想我知道我从哪里得到它。

所以我有一个Loader通过单例连接到 sqlite 的方法SQLiteOpenHelper

SQLIteOpenHelper看起来像这样:

在大多数情况下,它确实非常有效。但有时我会收到类似这样的日志:

这条线Log.i(TAG, "Get details offline / db: "+db);永远不会被调用!没有例外,沉默。另外,带有 的线程Loader不再运行。

所以什么都没有:

被执行。

这条线上可能出现什么问题?

0 投票
1 回答
469 浏览

android - LG 手机无法访问 SqLite 数据库

我们已经为 Android 平台开发了一个预加载 SQLite 数据库的应用程序。使用 SQLiteOpenHelper,在应用程序的第一次执行中,我们从“Assets”中复制数据库为应用程序数据目录(/data/data/br.com.lwu/databases/appdatabase.sqlite)。这适用于大多数设备。但是我们在使用以下 LG 手机时遇到了问题:

  • LG 擎天柱一号
  • LG-P500
  • LG-P500h

显然,数据库已正确复制。但应用程序无法访问数据库(如表)。我们需要帮助!

0 投票
3 回答
5053 浏览

android - 仅在首次创建数据库时将记录插入 sqlite 数据库

我只想在创建数据库时(即仅当我的应用程序第一次在设备上安装时)才将记录插入我的 sqlite 数据库。我搜索了帮助,有人建议在 的 onCreate()方法中插入数据SQLiteOpenHelper,但使用该方法无法插入记录。

这是我的代码

0 投票
2 回答
1963 浏览

android - Android中SQLite的默认线程模式是什么?

http://www.sqlite.org/threadsafe.html

从上面的链接我了解到,SQLite 支持三种不同的线程模式:单线程、多线程和序列化。我只是想知道“Android中SQLite的默认线程模式是什么”?有什么方法可以务实地改变线程模式吗?如果是这样,我如何以及有什么优势?什么时候选择哪一个有一些样本?

提前致谢。

0 投票
1 回答
1904 浏览

android - Android:数据库插入触发异常“递归调用getWritableDatabase”

每当异步任务尝试将数据插入 SQLite 数据库时,我都会遇到以下异常。

java.lang.IllegalStateException: 递归调用 getWritableDatabase

数据由运行单独的异步任务以下载、转换并最终插入数据的服务生成。我不确定我传递的上下文对象是否正确。请注意我添加到源代码中的注释。下面我添加了相关的类和函数。如果您需要更多信息,请发表评论。

...

...

...

...

当我在调试模式下运行应用程序时,我最终进入了方法块ThreadPoolExecutor中的框架类。finallyrunWorker()


编辑:
这是完整的异常堆栈跟踪。

我没有提到CustomSQLiteOpenHelper.insertTestData()调用getWritableDatabase(). 我将方法称为insertTestData(). CustomSQLiteOpenHelper.onCreate()每当应用程序尚未创建数据库时,都会发生崩溃。总而言之,hawaii.five-0 是完全正确的!

0 投票
2 回答
185 浏览

java - SQLiteOpenHelper 的说明

我正在为我的(初学者/Android)应用程序实现一个数据库。

我不清楚是否

旨在创建数据库(物理上,编写 .db/.sql 文件)

或者如果它仍然由我来创建这样的文件,并且这个类只是为了管理打开、关闭、更新数据库。

如果是这样,没有其他方法可以让一个类自动管理数据库,例如只传递文件名(除了自己做 ^_^ )

谢谢