一尘不染

如何在Hibernate中连接到多个数据库

hibernate

我是hibernate和尝试事物的新手。似乎所有令人感兴趣的一件事是如何连接到不同的数据库?我在这里有两个问题:

  1. 如果在同一个Web应用程序中,我需要连接到MySQL和Oracle,该怎么办?
  2. 我正在使用MySQL,并且有两个数据库test1和test2,如何连接和检索数据?

我在博客中读到我们可以创建不同的配置文件并执行此操作。我尝试过,但是没有成功。这是我尝试过的:

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

其中path是配置文件的路径。这是正确的方法吗?


阅读 218

收藏
2020-06-20

共1个答案

一尘不染

以注释映射为例:

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的方言和连接信息。

2020-06-20