关于Could not parse configuration: /hibernate.cfg.xml的问题

时间:2023-03-08 17:30:44

  第一次在eclipse上配置hibernate,问题百出啊,比如下面的org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml问题,知道是

hibernate.cfg.xml配置问题解决有问题,但不知道问题在哪,从Oracle的数据库的链接到po代码,各种找啊。

 log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
 log4j:WARN Please initialize the log4j system properly.
 org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml
     at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1376)
     at org.hibernate.cfg.Configuration.configure(Configuration.java:1310)
     at org.hibernate.cfg.Configuration.configure(Configuration.java:1296)
     at test.Query.main(Query.java:15)
 Caused by: org.dom4j.DocumentException: Connection timed out: connect Nested exception: Connection timed out: connect
     at org.dom4j.io.SAXReader.read(SAXReader.java:484)
     at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1366)
     ... 3 more
 Exception in thread "main" java.lang.NullPointerException
     at test.Query.main(Query.java:20)

下面是Oracle的hibernate的数据库连接配置(/hibernate.cfg.xml):

 <hibernate-configuration>
     <session-factory>
         <property name="show_sql">true</property>
         <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
         <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
         <property name="hibernate.connection.url">jdbc:oracle:thin:@Ip地址</property>
         <property name="hibernate.connection.username">用户名</property>
         <property name="hibernate.connection.password">密码</property>
         <mapping resource="com/po/Policy.hbm.xml"></mapping>
     </session-factory>
 </hibernate-configuration> 

下面是po的配置(/po.hbm.xml):

 <hibernate-mapping package="com.po">
     <class name="Policy" table="T_policy_general">
         <id name="POLICY_ID" column="POLICY_ID">
             <generator class="assigned" />
         </id>
         <property name="PRODUCT_ID" column="PRODUCT_ID" />
         <property name="STATUS_ID" column="STATUS_ID" />
         <property name="POLICY_NO" column="POLICY_NO" />
     </class>
 </hibernate-mapping>  

最后发现问题居然是xml文件头写的不对:

网上的错误写法:

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

正确写法:

  /hibernate.cfg.xml
 <?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">

  /po.hbm.xml

 <?xml version='1.0' encoding='UTF-8'?>
 <!DOCTYPE hibernate-mapping PUBLIC
           "-//Hibernate/hibernate-Mapping DTD 3.0//EN"
           "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

最后成功查询到数据.

总结:不同xml的头是不一样的。