gpt4 book ai didi

java - 如何通过重用 cfg.xml 和 util 类连接多个数据库?

转载 作者:搜寻专家 更新时间:2023-11-01 02:26:45 26 4
gpt4 key购买 nike

我想将多个数据库(如 SQL 和 Oracle)与不同的数据库连接起来。所以我已经为 session 工厂提供了 MSSQL hibernate.cfg.xml 和 Hibernateutil 类。现在我正在尝试将 oracle 与不同的表连接起来。

请告知我是否可以使用相同的 cgf.xml 和 util 类也可以配置 oracle 数据库。

这是 util 类。

public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();

@SuppressWarnings("deprecation")
private static SessionFactory buildSessionFactory()
{
try
{

SessionFactory sessionFactory = new Configuration().configure("/DAO/hibernate.cfg.xml").buildSessionFactory();
return sessionFactory;
}
catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}

public static SessionFactory getSessionFactory() {
return sessionFactory;
}

public static void shutdown() {
// Close caches and connection pools
getSessionFactory().close();
}

}

最佳答案

您需要为每个数据库提供一个cfg.xml。

 Oracle.cfg.xml
mssql.cfg.xml

在那里,您提供适当的数据库连接配置、要使用的方言以及实体类需要哪些 hbm 映射文件

在您的代码中,您为每个数据库创建一个 SessionFactory。

SessionFactory oracleSF = Configuration.configure("oracle.cfg.xml").buildSessionFfactory();
SessionFactory msSF = Conf..configure("mssql.cfg.xml").build....

要重用您的 util 类,您只需将配置文件的名称作为附加参数传递给创建 SessionFactory 的方法。

不同表的实体类在适当的配置文件中声明,因此分配给正确的数据库,因此 hibernate 知道要使用哪个数据库。

另请查看此讨论,该讨论是关于具有单个 cfg 的多个模式:

how to use Hibernate for two different schemas in a single database

看看这里:这是一个非常不错的网站,有大量的 hibernate 教程:

http://www.javabeat.net/hibernate/page/4/

关于java - 如何通过重用 cfg.xml 和 util 类连接多个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20819869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com