Ikki ma'lumotlar bazasi bilan bir vaqtning o'zida ishlash
Ko'pincha shunday vaziyatlar bo'ladi, qachonki sizga ikki ma'lumotlar bazasi bilan bir vaqtning o'zida ishlash kerak bo'ladi. Masalan, siz bir bazadan ma'lumotlarni o'qib, ularni qayta ishlaysiz va boshqa bazaga yozasiz.
Yoki yanada keng tarqalgan variant. Sizning dasturingiz bir ish uchun mahalliy ma'lumotlar bazasiga ega, shuningdek, turli xil uzoq manbalardan SQL-formatda ma'lumotlarni o'qishi mumkin. Masalan, Excel.
Uzoqdagi ma'lumotlar manbalari uchun o'z Hibernate-mapping ni sozlash juda foydali bo'lishi mumkin, shunda dasturning biznes-logikasi sodda bo'ladi va faqat Java-obyektlar bilan ishlaydi.
Buni amalga oshirishning eng oddiy usuli — bir necha konfiguratsiya fayllariga ega bo'lish. Masalan:
Va nihoyat, Hibernate'i ishga tushirish kodi asosan shunchaki dublikat qilinadi:
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");
Xotira ichidagi baza
To'liq xotirada joylashgan ma'lumotlar bazasini taqdim etuvchi SGBDlar mavjud. Bunday SGBDlar ko'pincha oddiy kutubxona shaklida tarqatiladi va ularni oddiy dasturga qo'shish oson. Masalan, bunday SGBDlar — H2 yoki Hsqldb.
Ularni loyihangizga boshqa kutubxonalar singari qo'shish mumkin — Maven'dagi dependency orqali:
GO TO FULL VERSION