android - 在 Android OrmLite 中使用多个数据库助手

标签 android ormlite

我的应用程序使用两个数据库。为了处理这些数据库,我创建了两个 DatabaseHelper 类,比如 X 类和 Y 类。

我使用相应的 getHelper() 方法来获取所需的数据库助手。

但是当初始助手是 X 而我需要 Y 时,我使用以下代码:

OpenHelperManager.releaseHelper();
dbHelper = OpenHelperManager.getHelper(context, Y.class)

我得到以下异常:

java.lang.IllegalStateException: Helper class was class X but is trying to be reset to class Y

我知道在 OrmLite 中我们可以使用具有 1 个数据库连接的单个助手实例,我认为我没有违反该规则。请问有人可以帮忙吗?

最佳答案

看起来您正在为两个类(X 类和 Y 类)重用相同的变量 dbHelper,但是 dbHelper 的类型不是 X 和 Y 的父类。我需要查看更多您的代码,但看起来这个错误与 ormlite 无关。您可以:

  • 为每个助手使用一个单独的变量(无论如何,您都会有一些逻辑来决定要访问哪个数据库)。
  • 为类 X 和 Y 创建一个抽象父类,并将 dbHelper 的类型更改为该类型。

顺便说一句,在这里你可以看到一个 example of using two databases with ormlite for android .

关于android - 在 Android OrmLite 中使用多个数据库助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17300571/

相关文章:

java - 仅返回 SQLite Select 语句中的最后一个值

java - 如何使用 ormlite 4.42 持久保存foreignCollection?

java - 带有 JAR 文件的 JUnit NoClassDefFoundError

java - 在 android studio 中,当手机没有互联网时,如何防止缓冲读取器从 url 读取时出现错误

Android 应用程序在没有堆栈的情况下崩溃 : how to debug?

android - 任何用于 SQL 的 kotlin ORM?

java - 将 Dao 作为静态成员存储在类中是否安全?

Android ORMLite 没有这样的表异常

android - 调用 invalidate(Rect) 时,ImageView 如何只重绘其部分内容?

android - RxView.clicks() 在 onError 事件后死亡