出现的错误如下:
Exception in thread "main" org.hibernate.MappingException: Error reading resource: ch03/hibernate/User.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:452)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1263)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1235)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1217)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1184)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1112)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1098)
at ch03.hibernate.Test.main(Test.java:17)
Caused by: org.hibernate.MappingException: invalid mapping
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:399)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:449)
... 7 more
Caused by: org.xml.sax.SAXParseException: Document root element "hibernate-mapping", must match DOCTYPE root "hibernate-configuration".
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.rootElementSpecified(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleStartElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:398)
... 8 more

解决方案 »

  1.   

    <?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"><!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-mapping>    <class name="ch03.hibernate.User" table="myusertable">
            <id name="ID" type="java.lang.Integer">
                <generator class="identity"/>
            </id>
             <property name="username" type="java.lang.String">
                 <column name="username" length="16" not-null="true" /> 
             </property>
            <property name="password"/>
            <property name="email"/>
        
        </class></hibernate-mapping>
      

  2.   

    一个XML文档的DOCTYPE描述信息中指定的根元素名称必须和实际文档中的根元素名称相同 
    而你现在的是:
    描述中定义:hibernate-configuration 
    实际根元素:hibernate-mapping所以你的描述信息需要写成如下:
    <!DOCTYPE hibernate-mapping PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
      

  3.   

    就是用hibernate3.0连接数据库呀,那个是我的配制文件,就是那个配制文件有问题,我不知道怎么改
      

  4.   


    <?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">
    <!-- 
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping>
        <class name="com.oa.pojos.Users" table="users" schema="dbo" catalog="OASystem">
            <id name="uid" type="java.lang.Integer">
                <column name="uid" />
                <generator class="native" />
            </id>
      

  5.   

    这个好像还可以用 Eclipse生成,怎么生呀:
    谢谢 好心人 给我个步骤把:
      

  6.   

    用鼠标由击工程->NEW->other->选择hibernate->有两个:hibernate configurtion file,hibernate mapping file然后点击NEXT就可以自己配置啦...
      

  7.   

    这是我一个
    train.hbm.xml<?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
          "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="hibernate_tier">        <class name="hibernate_tier.Train"  table="TRAIN">
                    
                    <id name="id" >
                            <generator class="increment"/>
                    </id>         <property name="trainCode" column="train_code" type="string"/>
            <property name="startStation" column="start_station" type="string"/>
    <property name="startTime" column="start_time" type="time"/>
    <property name="terminal" column="terminal" type="string"/>
    <property name="terminalTime" column="terminal_time" type="time"/>
     <property name="price" column="price" type="string"/>
    </class>
     
    </hibernate-mapping>
      

  8.   

    hibernate.cfg.xml<?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration
        PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration>    <session-factory>
            <property name="hibernate.connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>        <property name="hibernate.connection.url">jdbc:microsoft:sqlserver://localhost:1433;SelectMethod=cursor;DatabaseName=Train</property>        <property name="hibernate.connection.username">sa</property>        <property name="hibernate.connection.password"></property>        <property name="hibernate.connection.pool_size">100</property>        <property name="show_sql">false</property>        <property name="dialect"> org.hibernate.dialect.MySQLDialect</property>        <!-- Mapping files -->
            <mapping resource="Train.hbm.xml"/>    </session-factory></hibernate-configuration>