在Android OrmLite中使用多个数据库帮助程序

时间:2013-06-25 14:49:22

标签: 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个数据库连接,我不认为我违反了该规则。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

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

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

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