当前位置: 首页 > 面试题库 >

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

萧业
2023-03-14
问题内容

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

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

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

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

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


问题答案:

以注释映射为例:

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



 类似资料:
  • 问题内容: 我有一个使用Java Servlet / JSP的应用程序。我的应用有多个客户端,但是每个客户端都有一个单独的数据库。所有数据库都具有相同的架构。我想确定用户登录系统时要使用哪个数据库连接。 例如,客户端A登录后,我确定客户端A属于数据库C,抓住了数据库C的连接,然后继续愉快地进行操作。 我正在将JPA与Hibernate一起用作我的JPA提供程序。是否可以使用多个持久性单元并在登录时

  • 问题内容: 我的信息分布在几个数据库中,并希望使用PHP将所有信息放到一个网页上。我想知道如何在单个PHP网页上连接到多个数据库。 我知道如何使用以下方法连接到单个数据库: 但是,我可以仅使用多个“ mysql_connect”命令来打开其他数据库吗?如果我确实连接了多个数据库,PHP如何知道要从哪个数据库中提取信息? 问题答案: 警告: 自php 5.5起不推荐使用功能,自php 7.0起不推荐

  • 我需要连接到我的项目中的两个数据库。所以我创建了两个配置文件。 和 我配置了我的文件格式, 但是当我运行应用程序时,抛出了以下异常。 我无法确定错误是什么。我有两个模块。一个数据库的和类位于一个模块中,另一个数据库的类位于另一个模块中。这是问题的根源吗? 编辑 我的

  • 所以我有数百个数据库,我想根据我传递的值来改变使用什么数据库 例如,我有许多公司分支机构有branch_code(000,001,002,003等。高达200)。它们都有相同的表,但只是在不同的数据库中创建的。还假设只有DB Name不同。我的问题是,当有数百个数据库时,我如何访问不同的数据库?我应该动态更改. env文件吗?当用户选择另一个分支时,我应该创建一个改变连接的函数吗?如果是的话,怎么

  • 从bugu-mongo 2.11版本开始,支持连接到多个数据库。 在前面的示例代码中,我们都只是连接到一个数据库: //默认的数据库连接 BuguConnection conn = BuguFramework.getInstance().createConnection(); conn.setHost("192.168.0.100"); conn.setPort(27017); conn.setU

  • 比如说,我有一个名为“Contact”的表,其中“first\u name”和“last\u name”作为列。基本上,“从联系人c中选择concat(c.firstname,,,c.lastname)作为全名”是我在hibernate中想要做的。 我可以将整个查询放在createQuery中,并获得所需的输出。但是,我不想在hibernate中执行sql查询。我在这里找到了一篇类似的帖子“我们可