Довольно часто возникают ситуации, когда тебе нужно работать с двумя базами одновременно. Например, ты читаешь данные из одной базы, обрабатываешь их и пишешь в другую.
Или же еще более частый вариант. Твое приложение имеет одну локальную базу данных для работы, а также может читать данные из различных удаленных источников, которые поддерживают SQL-формат запроса данных. Например, Excel.
Для этих удаленных источников данных бывает очень полезно настроить свой Hibernate-маппинг, чтобы бизнес-логика приложения могла быть проще и работать только с Java-объектами.
Самый простой способ это сделать — иметь несколько файлов конфигураций. Например, так:
Ну и весь код инициализации Hibernate фактически просто дублируется:
Configuration oracleCfg = new Configuration();
oracleCfg.configure("/com/javarush/hibernate/multipledatabase/hibernate_oracle.cfg.xml");
SessionFactory oracleSessionFactory = oracleCfg.buildSessionFactory();
Session oracleSession = oracleSessionFactory.openSession();
Configuration mysqlCfg = new Configuration();
mysqlCfg.configure("/com/javarush/hibernate/multipledatabase/hibernate_mysql.cfg.xml");
SessionFactory mySqlSessionFactory = mysqlCfg.buildSessionFactory();
Session mysqlSession = mySqlSessionFactory.openSession();
Employee emp = oracleSession.get(Employee.class, "E0087");
System.out.println("Employee retrived from Oracle Database");
Transaction tx = mysqlSession.beginTransaction();
mysqlSession.save(emp);
tx.commit();
System.out.println("Employee inserted in MySQL Database");
База в памяти
Существуют СУБД, которые представляют собой базы данных, полностью размещенные в памяти. Такие СУБД часто распространяются просто в виде библиотек и их легко включить в обычное приложение. Такими СУБД, например, являются H2 или Hsqldb.
Добавить их в свой проект можно так же, как и любые другие библиотеки — с помощью зависимости в Maven:
Существуют СУБД, которые представляют собой базы данных, полностью размещенные в памяти.
Имеется ввиду оперативной памяти, т.е. не постоянной на диске?
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ