Android 용 OrmLite 예제에서 "HelloTwoDbs"예제를 사용하여 동시에 이중 데이터베이스의 사용을 확인했습니다.동시에 쓰여지는 OrmLite 다중 데이터베이스
OrmLite를 사용하여 여러 데이터베이스를 설정했다고 가정 할 때 두 데이터베이스를 동시에 문제없이 작성할 수 있습니까? 각 데이터베이스에 대해 "한 번에 하나의 쓰레드 만"쓰지만 두 쓰레드 (각 데이터베이스에 하나씩)는 동시에 실행됩니다.
실제로이 코드는 하나의 에뮬레이터에서 코드를 사용하여 테스트했지만 아무런 문제가 없었지만 OrmLite에서 실제로 지원하고 나에게 미래의 문제를 일으키지 않으면 여전히 안전하지 않습니다.
btw, 내가 작은 소셜 상호 작용 응용 프로그램을하고 싶기 때문에 나는 두 가지 다른 데이터베이스 접근법을 사용하고 싶다. 사용자 생성 콘텐츠 때문에 몇 가지 이유 때문에 응용 프로그램 정적 콘텐츠에서 사용자 생성 콘텐츠를 분리하고 싶습니다. 동기화 된 후 수정 된 방식으로 애플리케이션 정적 콘텐츠가 빠르게 처리됩니다. 또한, 두 데이터베이스와 함께 실제로 다른 소스에서 동시에 다른 시간에 두 가지 내용을 서로 다른 데이터베이스로 업데이트 할 수 있습니다.
가능한 경우 도와주세요. 단지 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();
}
또한 "useCounter"변수가 필요하고 도우미 컨트롤이 필요한 이유가 무엇인지 알 수 없습니다. AFAIK, OrmLiteSqliteOpenHelper는 이미 우리에게이 동작을 제공합니다. –