1

我的应用程序使用两个数据库。为了处理这些数据库,我创建了两个DatabaseHelper类,比如 classX和 class 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 个数据库连接的帮助程序的单个实例,我认为我没有违反该规则。有人可以在这里帮忙吗?

4

1 回答 1

2

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

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

顺便说一句,在这里您可以看到一个使用 ormlite for android 的两个数据库的示例

于 2013-07-05T13:37:37.550 回答