または、こちらの小さな指示に従うこともできます ;)
実行時に接続を変更するには、基本的にオブジェクトストアコーディネーターを設定する必要があります
次のように、カスタム オブジェクト ストア コーディネーターを作成します。
NSMutableDictionary<String, String> temp = new NSMutableDictionary<String, String>();
temp.put("URL", String.format("%s?useBundledJdbcInfo=true", url));
temp.put("username", username);
temp.put("password", password);
temp.put("name", name);
connectionDictionary=temp.immutableClone();
// Create a new Object store coordinator
objectStoreCoordinator = new ERXObjectStoreCoordinator();
ERXModelGroup.setModelGroupForObjectStoreCoordinator(
objectStoreCoordinator, ERXModelGroup.defaultGroup()
);
// Set the model that you want to use to connect to multiple databases
EOAdaptor adaptor =ERXDatabaseContext.registeredDatabaseContextForModel(
ERXModelGroup.defaultGroup().modelNamed("YourModelName"),
objectStoreCoordinator
).adaptorContext().adaptor();
// update the connection dictionary
adaptor.setConnectionDictionary(
updateDictionary(adaptor.connectionDictionary(),
connectionDictionary)
);
これにより、選択したデータベースを指す新しい編集コンテキストを簡単に作成できます
ERXEC.newEditingContext(objectStoreCoordinator);
アプリケーションが複数のユーザーによって使用され、互いに干渉することなく複数の DB を切り替える必要がある場合は、共有編集コンテキストを使用しないことをお勧めします。
このように、オブジェクトストアコーディネーターを変更して、他の人もそのデータベースを指すようにすることを避けることができます (あまり面白くありません)。