读书人

Hibernate 的一个小疑点

发布时间: 2013-01-11 11:57:35 作者: rapoo

Hibernate 的一个小问题
我写的第一个hibernate程序,helloworld就出错了,不知道为啥,求大神指教~~~

首先附上我的hibernate.cfg.xml 配置:


<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>

<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>


<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>


<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>


<mapping resource="HibernateModel/student.hbm.xml"/>

</session-factory>

</hibernate-configuration>


以及我的student.hbm.xml


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package=HibernateModel">

<class name="student" >
<id name="id" >
<generator class="native"/>
</id>
<property name="age"/>
<property name="name"/>
</class>
</hibernate-mapping>



以下是测试类:

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

import HibernateModel.student;




public class StudentTest {

private static SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;

public static void main(String[] args) {
student s = new student();


s.setId(1);
s.setAge(1);
s.setName("wang");


Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);

Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(s);
session.getTransaction().commit();
session.close();
sessionFactory.close();



}

}



运行之后报这种错误信息

Exception in thread "main" org.hibernate.InvalidMappingException: Unable to read XML
at org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:109)
at org.hibernate.cfg.Configuration.add(Configuration.java:478)
at org.hibernate.cfg.Configuration.add(Configuration.java:474)
at org.hibernate.cfg.Configuration.add(Configuration.java:647)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:730)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2115)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2087)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2067)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2020)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1935)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1914)
at StudentTest.main(StudentTest.java:26)
Caused by: org.dom4j.DocumentException: Error on line 6 of document : Open quote is expected for attribute "{1}" associated with an element type "package". Nested exception: Open quote is expected for attribute "{1}" associated with an element type "package".
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:78)
... 11 more




我查过报名什么的都没错啊,这个错误是什么意思啊???求诸位大神指教~~~~~ hibernate
[解决办法]
<hibernate-mapping package=HibernateModel">没看到少个引号吗?改为
<hibernate-mapping package="HibernateModel">
[解决办法]
注意看错误:
Caused by: org.dom4j.DocumentException: Error on line 6 of document
Open quote is expected for attribute "{1}" associated with an element type "package". Nested exception: Open quote is expected for attribute "{1}" associated with an element type "package".


指出错误位置在16号,原因是domu4j解析xml文档错误,属性package的值要求一个开头的引号,但文档中没有

<hibernate-mapping package=HibernateModel">
一看就是笔误了,少一个引号


[解决办法]
引用:
注意看错误:


Caused by: org.dom4j.DocumentException: Error on line 6 of document
Open quote is expected for attribute "{1}" associated with an element type "package". Nested exception: O……



正解!
[解决办法]
package=HibernateModel"
左边少了引号

读书人网 >J2EE开发

热点推荐