我正在使用hibernate创建一个jar。我曾经遇到过一个情况我需要更改设置(URL)的时候,所以我想加载hibernate.cfg.xml这样
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从课程路径以外的其他位置加载?
public Configuration configure(File configFile)上课有方法Configuration
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,因此您可以传递它。
configure(String resource)
configure(File configFile)
File