使用hibernate

时间:2018-05-22 06:39:09

标签: java hibernate

我尝试了很多方法来解决这个错误(使用maven项目)

  1. 我把hibernate.cfg.xml文件放在src文件夹中然后得到了同样的错误(找不到hibernate.properties)
  2. 我把hibernate.cfg.xml文件放在资源文件夹中然后得到同样的错误(找不到hibernate.properties)
  3. 我把hibernate.cfg.xml文件放在webapp / WEB-INF文件夹中,然后得到同样的错误(找不到hibernate.properties)
  4. 我在hibernate.cfg.xml中编写的数据库的所有属性如下
  5. 
    
    <?xml version='1.0' encoding='UTF-8'?>  
    <!DOCTYPE hibernate-configuration PUBLIC  
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
     
    <hibernate-configuration>
        <session-factory>
            <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
            <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/testdb</property>
            <property name="hibernate.connection.username">postgres</property>
            <property name="hibernate.connection.password">sql123</property>
            <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
            <property name="hbm2ddl.auto">create </property>
            <property name="show_sql">true</property>
            <property name="format_sql">true</property>
            <mapping resource="Employee-hbn.xml" />
        </session-factory>
    </hibernate-configuration>
    &#13;
    &#13;
    &#13; 我得到的例外情况如下:

    &#13;
    &#13;
    May 22, 2018 2:28:38 PM org.hibernate.Version logVersion
    INFO: HHH000412: Hibernate Core {5.3.0.Final}
    May 22, 2018 2:28:38 PM org.hibernate.cfg.Environment <clinit>
    INFO: HHH000206: hibernate.properties not found
    Could not locate cfg.xml resource [/src/main/java/hibernate.cfg.xml]
    error
    &#13;
    &#13;
    &#13;

    如果您有解决方案,请告诉我

    提前致谢....

2 个答案:

答案 0 :(得分:1)

  

找不到cfg.xml资源[/src/main/java/hibernate.cfg.xml]   错误

这意味着Hibernate试图在

中找到hibernate.cfg.xml

/src/main/java/hibernate.cfg.xml

这是一条不正确的道路。

你应该:

  1. hibernate.cfg.xml放入resources文件夹。
  2. 使用Configuration configuration = new Configuration().configure()进行配置。
  3. 刷新项目并检查hibernate.cfg.xml是否位于build文件夹的根目录中。
  4. 一些解释:

    Configuration configuration = new Configuration().configure()

    相同

    Configuration configuration = new Configuration().configure("hibernate.cfg.xml");

    这一行告诉Hibernate在类路径的根目录中找到hibernate.cfg.xml。例如,如果您构建jar,则此文件应位于jar的根目录中。

    对于war,类路径的根是WEB-INF/classes

    当您将文件放入resources文件夹时,Maven会将resources文件夹的所有内容放入类路径的根目录(到jar的根目录,或者到)。因此,您不会在resources中拥有jar文件夹,只是它的内容。

    刷新项目时,IDE会执行相同的操作。

答案 1 :(得分:0)

您的hibernate.cfg.xml需要在类路径中可见。

对于将其置于WEB-INF / classes中的Web可能会起作用。

对于非web的maven项目,您可以使用/ src / main / resources /这是默认的maven资源文件夹(如果已经切换它,则使用不同的文件夹)。

同样在你的pom.xml中,你需要依赖hibernate-core