一尘不染

如何从不同位置加载hibernate.cfg.xml

hibernate

我正在使用hibernate创建一个jar。我曾经遇到过一个情况我需要更改设置(URL)的时候,所以我想加载hibernate.cfg.xml这样

SessionFactory sessionFactory = new Configuration()
                                     .configure("D:\\fax\\hibernate.cfg.xml")
                                     .buildSessionFactory();

但是然后运行该项目,我得到这个异常

org.hibernate.HibernateException: D:\fax\hibernate.cfg.xml not found
    at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147)
    at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1287)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1309)
    at hibernate.LabOrderHelper.getDatabaseSesssion(LabOrderHelper.java:55)
    at hibernate.Test.main(Test.java:42)

如何hibernate.cfg.xml从课程路径以外的其他位置加载?


阅读 227

收藏
2020-06-20

共1个答案

一尘不染

public Configuration configure(File configFile)上课有方法Configuration

请尝试以下操作,它应该可以正常工作:)

File f = new File("D:\\fax\\hibernate.cfg.xml");
SessionFactory sessionFactory = new Configuration().configure(f).buildSessionFactory();

不同之处在于您使用了一种方法configure(String resource),该方法期望类路径中的资源,但是configure(File configFile)所期望的却在其中File,因此您可以传递它。

2020-06-20