找不到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项目。