我使用了Android OrmLite 示例中的“ HelloTwoDbs ”示例来同时检查双数据库的使用情况。
假设我使用 OrmLite 设置了多个数据库,我可以同时在两个不同的数据库中写入而没有问题吗?对于每个数据库,它只有“一次写入一个线程”,但是两个写入线程(每个数据库一个)将同时执行。
我实际上在一个模拟器中使用下面的代码对此进行了测试并且没有任何问题,但是如果 OrmLite 真的支持它并且不会给我带来未来的问题,我仍然不安全。
顺便说一句,我倾向于使用两种不同的数据库方法,因为我想做一个小型社交交互应用程序,并且出于几个原因,我想将用户生成的内容从应用程序静态内容中分离出来,主要是因为用户生成的内容得到了同步和修改比应用程序静态内容更快的方法。此外,使用两个数据库,我实际上可以同时将两个内容同时从不同的来源更新到不同的数据库,或者我希望如此。
如果可能,请帮助我。=)
我根据站点示例进行的小测试,只是在 HelloTwoDbs.java 上调用“doOtherStuff”:
添加->
private void doOtherStuff() {
new Thread(new Runnable() {
@Override
public void run() {
Log.e(LOG_TAG, "Started 1");
final DatabaseHelper1 databaseHelperA = getHelper1();
try {
final Dao<SimpleData, Integer> simpleDao = databaseHelperA.getSimpleDataDao();
for (int i = 0; i < 5000; i++) {
Log.e(LOG_TAG, "Adding (1): " + i);
simpleDao.create(new SimpleData(i));
}
} catch (SQLException e) {
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
Log.e(LOG_TAG, "Started 2");
final DatabaseHelper2 databaseHelperB = getHelper2();
try {
final Dao<ComplexData, Integer> complexDao = databaseHelperB.getComplexDataDao();
for (int i = 0; i < 5000; i++) {
Log.e(LOG_TAG, "Adding (2): " + i);
complexDao.create(new ComplexData(i));
}
} catch (SQLException e) {
}
}
}).start();
}