找不到hibernate.cfg.xml
我是Hibernate的新手,阅读本书“使用Hibernate进行Java持久化”,我试图从那里实现这个例子。 到目前为止,我的Ant构建是成功的,但是当我尝试执行包含main方法的类时,我收到此错误消息:
19-Nov-2011 18:40:09 org.hibernate.cfg.Environment INFO: Hibernate 3.2.3 19-Nov-2011 18:40:09 org.hibernate.cfg.Environment INFO: hibernate.properties not found 19-Nov-2011 18:40:09 org.hibernate.cfg.Environment buildBytecodeProvider INFO: Bytecode provider name : cglib 19-Nov-2011 18:40:09 org.hibernate.cfg.Environment INFO: using JDK 1.4 java.sql.Timestamp handling 19-Nov-2011 18:40:09 org.hibernate.cfg.Configuration configure INFO: configuring from resource: /hibernate.cfg.xml 19-Nov-2011 18:40:09 org.hibernate.cfg.Configuration getConfigurationInputStream INFO: Configuration resource: /hibernate.cfg.xml Exception in thread "main" java.lang.ExceptionInInitializerError at persistence.HibernateUtil.(Unknown Source) at hello.Driver.main(Unknown Source) Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147) at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1405) at org.hibernate.cfg.Configuration.configure(Configuration.java:1427) at org.hibernate.cfg.Configuration.configure(Configuration.java:1414) ... 2 more
很明显,hibernate找不到我的配置文件,它位于根目录中。
项目
+lib +src +hello HelloWorld.java Message.java message.hbm.xml +persistence HibernateUtil.java build.xml hibernate.cfg.xml
我的完整源代码可以在这里找到: http : //pastebin.com/bGDUrxUf
我有一个运行MySQL服务器与数据库hibernateapp和表消息
谢谢 :)
你的hibernate.cfg.xml
需要在src
目录中; 否则它不会被Ant的copymetafiles
目标覆盖,所以它不会在你编译的类路径中结束。
hibernate.cfg.xml文件应位于项目类路径的根目录中。 如果你使用Maven,那么确保它应该像src> resources> hibernate.cfg.xml。
它不应该在您的根目录中,它应该在您的类路径中。
您可以使用带有hibernateConfig
File
参数的configure(File configFile)
方法从其他目录(不一定是类路径)加载hibernate.cfg.xml
。 (注意,我正在使用hibernate 4.3.7)
喜欢这个:
String hibernatePropsFilePath = "/etc/configs/hibernate.cfg.xml"; File hibernatePropsFile = new File(hibernatePropsFilePath); Configuration configuration = new Configuration(); configuration.configure(hibernatePropsFile); StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()); ServiceRegistry serviceRegistry = serviceRegistryBuilder.build(); SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
如果您正在使用Intellij Idea,那么在src \ main \ java下创建一个名为“resources”的文件夹。 打开项目的模块设置,从左侧选择“模块”,在“源”选项卡中选择新创建的“资源”文件夹并将其标记为“资源”。
这应该工作
Configuration con = new Configuration().configure("hibernate.cfg.xml");
虽然现在已经很晚了,但解决方案是您需要将此配置文件放在资源文件夹(projectxxxx-> Resources)中,前提是它是一个maven项目。