第一次在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的头是不一样的。