Как соединиться с несколькими базами данных в, в спящем режиме

Я - новая пчела для Спящего режима и испытание вещей. Одна вещь, которая, кажется, развлекает все, состоит в том, как соединиться с различными базами данных? У меня есть два вопроса здесь:

  1. Если в том же веб-приложении я должен соединиться с MySQL и Oracle, как я делаю это?
  2. Я использую MySQL и имею две базы данных test1 и test2, как соединить и получить данные?

Я читал в блоге, что мы можем создать различные конфигурационные файлы и сделать это. Я попробовал его, но не был успешен. Вот то, что я попробовал:

SessionFactory sf = (SessionFactory) new Configuration().configure(path);

Где путь является путем файла конфигурации. Действительно ли это - правильный путь?

24
задан Jonathan Leffler 26 November 2013 в 15:32
поделиться

2 ответа

Использование сопоставлений аннотаций в качестве примера:

Configuration cfg1 = new AnnotationConfiguration();
cfg1.configure("/hibernate-oracle.cfg.xml");
cfg1.addAnnotatedClass(SomeClass.class); // mapped classes
cfg1.addAnnotatedClass(SomeOtherClass.class);
SessionFactory sf1 = cfg1.buildSessionFactory();

Configuration cfg2 = new AnnotationConfiguration();
cfg2.configure("/hibernate-mysql.cfg.xml");
cfg2.addAnnotatedClass(SomeClass.class); // could be the same or different than above
cfg2.addAnnotatedClass(SomeOtherClass.class);
SessionFactory sf2 = cfg2.buildSessionFactory();

Затем используйте sf1 и sf2, чтобы получить сеансы для каждой базы данных. Для сопоставления файлов вы просто используете cfg.addClass вместо addAnnotatedClass. В этом случае поместите файлы cfg.xml в корневой пакет. У них будет диалект Oracle или MySQL и информация о подключении.

45
ответ дан 28 November 2019 в 23:12
поделиться

В идеале в этом случае вам следует перейти к типу распределенных транзакций системы [с использованием Java Transaction Analyzer org.hibernate.transaction.JTATransactionFactory]. Если вы работаете на сервере приложений JBoss, вы можете сделать это с помощью «менеджеров распределенных транзакций». Подробнее об этом можно узнать здесь .

2
ответ дан 28 November 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: