我的应用程序使用两个数据库。为了处理这些数据库,我创建了两个 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/