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

abh*_*bhi 11 java xml hibernate

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

SessionFactory sessionFactory = new Configuration()
                                     .configure("D:\\fax\\hibernate.cfg.xml")
                                     .buildSessionFactory();
Run Code Online (Sandbox Code Playgroud)

但是然后运行项目我得到了这个例外

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)
Run Code Online (Sandbox Code Playgroud)

如何hibernate.cfg.xml从类路径的不同位置加载?

Jay*_*gar 20

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

尝试以下,它应该工作肯定:)

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

区别在于您使用了一种方法configure(String resource),该方法期望在类路径中使用资源,但是在configure(File configFile)期望a的位置File,您可以传递它.