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

 victor 发布于 2023-02-07 17:30

我想连接多个数据库,如SQL和Oracle与不同的数据库.所以我已经有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();
    }

}

Diversity.. 5

您需要为每个数据库提供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的多个模式:

如何在单个数据库中将Hibernate用于两个不同的模式

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

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

1 个回答
  • 您需要为每个数据库提供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的多个模式:

    如何在单个数据库中将Hibernate用于两个不同的模式

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

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

    2023-02-07 17:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有