0 0

hibernate初学者 出现Could not parse mapping document from resource 报错 帮吗看一下30


初学hibernate 一个最简单的hibernate的小测试程序,总是报错,哪位好心人帮忙看一下哪里错了

Student类

package com.bjsxt.model;

public class Student {
   private String name;
   private int id;
   private int age;
  
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
  
}

Student.hbm.xml 与student类放在一个文件夹(com.bjsxt.model)下
<?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="com.bjsxt.model">

    <class name="Student" table="student">
     <id name="id"/>
        <property name="age" />
        <property name="name" />
   
    </class>

</hibernate-mapping>

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

StudentTest 测试类 放在src目录下
import com.bjsxt.model.Student;


public class StudentTest {
    public static void main(String[] args) {
    Student student = new Student();
    student.setId(1);
    student.setName("gsy");
    student.setAge(23);
   
    Configuration cfg = new Configuration();
    SessionFactory sf = cfg.configure().buildSessionFactory();
    Session session = sf.openSession();
    session.beginTransaction();
    session.save(student);
    session.getTransaction().commit();
    session.close();
    sf.close();
      
    }
}

hibernate.cfg.xml文件放在src目录下

<?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>

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

        <!-- JDBC connection pool (use the built-in) -->
       <!--  <property name="connection.pool_size">1</property> -->

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

        <!-- Enable Hibernate's automatic session context management -->
       <!--  <property name="current_session_context_class">thread</property> -->

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

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

        <!-- Drop and re-create the database schema on startup -->
       <!--   <property name="hbm2ddl.auto">update</property>-->

        <mapping resource="com/bjsxt/model/Student.hbm.xml"/>

    </session-factory>



</hibernate-configuration>

数据库表:



不过运行studentTest时总是报错为:
Exception in thread "main" org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/bjsxt/model/Student.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:616)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1635)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1603)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1582)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1556)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1476)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1462)
at StudentTest.main(StudentTest.java:17)
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:555)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:613)
... 7 more
Caused by: org.dom4j.DocumentException: Error on line 2 of document  : The processing instruction target matching "[xX][mM][lL]" is not allowed. Nested exception: The processing instruction target matching "[xX][mM][lL]" is not allowed.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:546)
... 8 more

我是刚开始自学的hibernate,第一个小测试程序就报错 ,很是受打击,麻烦帮忙看一下哪里错了,不胜感激...
2010年5月14日 16:44
  • 大小: 42.6 KB

24个答案 按时间排序 按投票排序

0 0

建议用myeclipse format一下文件

2010年5月28日 16:30
0 0

文档中有非法字符

2010年5月28日 16:29
0 0

<?xml version="1.0"?>这个不对,没有字符编码

2010年5月28日 09:07
0 0

错误字符是“xml”

说明<?xml version='1.0' encoding='utf-8'?> 前存在空格、空行。

删除这句话之前的所有空行空格。

2010年5月27日 22:10
0 0

zvxcvxcvxc

2010年5月26日 18:02
0 0

哎..hibernate本来就很强大的框架 自动生成映射文件不就OK了  还费时费力的去敲
不麻烦吗

2010年5月26日 14:13
0 0

后面的几个说的才靠谱!映射文件错了!

2010年5月26日 12:44
0 0

lz问题还没解决?介意你别手动写实体映射文件,直接用hiberbate框架生成,这样就不会出现一些莫名奇妙的错。
介意你把:Student.hbm.xml中的<class name="Student" table="student">
改成<class name="com.bjsxt.Student" table="student"> 试试,因为报错说是无法解析你的映射文件。

2010年5月24日 10:51
0 0

你BJSXT的?现在谁教你hibernate啊?

2010年5月24日 10:30
0 0

hibernate.cfg.xml这个文件我用我自己的,复制你的其他的代码调过~~没有任何问题~~谢谢。。检查一下引用的包吧。。呵呵

2010年5月24日 01:42
0 0

即使不写长度了,最起码给我属性一个类型吧,Hibernate知道你是什么类型么?

2010年5月22日 10:47
0 0

The processing instruction target matching "[xX][mM][lL]" is not allowed. 

你的Student.hbm.xml 格式问题.!

2010年5月20日 17:04
0 0

Student.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">

<hibernate-mapping>
 <class name="com.bjsxt.model.Student" table="student">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="increment" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="name" length="20"/>
        </property>
        <property name="age" type="java.lang.Integer">
            <column name="age" length="11"/>
        </property>
 </class>

</hibernate-mapping>

2010年5月19日 10:51
0 0

配置文件的问题,最好用反向工程生成你所需要的配置文件。等看得差不多了自己再写写。

2010年5月18日 19:05
0 0

hibernate映射文件没有和数据库字段关联吧
  
  正确的写法
<property name="age" type="long">
     <column name="AGE" length="2" />
  </property>

还有你的ID生成策略设一下

2010年5月18日 16:23
0 0

应该是Student.hbm.xml文件的格式出现错误了吧,我复制了你的代码,在我的机子上是可以正确运行的

2010年5月15日 17:35
0 0

实体类对应hibernate的映射文件有错,上面的错误应该出在主键没有生成策略

2010年5月15日 12:28
0 0

看看是不是student.hbm.xml 没有加 encoding="utf-8"?

2010年5月14日 17:15
0 0

<?xml version="1.0" encoding="utf-8"?>


utf-8编码是不能少的,因为xml文档默认的及时Unicode字符集。

2010年5月14日 17:03
0 0


引用
The processing instruction target matching "[xX][mM][lL]" is not allowed


错误字符是“xml”

说明<?xml version='1.0' encoding='utf-8'?> 前存在空格、空行。

删除这句话之前的所有空行空格。

2010年5月14日 17:02
0 0

很明显呀  你的hbm.xml 没有按照规范去写或者生成
在解析的时候不能正确解析 该是你property 没有和表的列对应吧?猜测
建议用hibernate工具区生成映射文件 。

2010年5月14日 16:55
0 0

<id name="id"/>  主键生成策略呢?

<id name="id" column="id">
    <generator class="native"></generator>
</id>
这样吧!

2010年5月14日 16:53
0 0

请检查 Student.hbm.xml 文件的格式是否正确(用IE直接打开 看出错不),我感觉应该是你的文件编码有问题,请你UE 转换编码到 utf-8 试试。

另外,我还想说,还是学习JPA,是JavaEE的标准,而且比Hibernate更好易用。
JPA其实是Hibernate进一步发展,以及标准化的结果。

2010年5月14日 16:51
0 0

引用
The processing instruction target matching "[xX][mM][lL]" is not allowed


错误字符是“xml”

删除 <?xml version='1.0' encoding='utf-8'?> 前的空格、空行,皆可

2010年5月14日 16:48

相关推荐

    Downloads.zip

    Could not read /Users/panxin/Library/Android/sdk/platform-tools/api/annotations.zip java.io.IOException: Could not parse XML from annotations/android/widget/annotations.xml 请将本文件解压后的...

    annotations.zip

    Android Build 时报错: java.io.IOException: Could not parse XML from android/accounts/annotati...Android构建时报错: app:lintVitalRelease[Fatal Error] :3:214: 与元素类型 “item” 相关联的 “name” ...

    【数据挖掘重要笔记day31】详细完解决iris = sns.load_dataset(‘iris’)出来EmptyDataError: No columns to parse from file报错

    EmptyDataError: No columns to parse from file报错 原因和解决办法: 是因为你之前下载这个数据集的时候,中断了,已经产生了一个iris.csv的空文件在home家目录下面,你只需要去home家目录下面删除这个空文件既...

    AndroidSDK下/platform-tools/api/annotations.zip

    编译时遇到以下报错:app:...java.io.IOException: Could not parse XML from annotations/android/widget/annotations.xml 请将本文件替换SDK目录下的/platform-tools/api/annotations.zip文件,建议替换前备份原文件

    parse_resource, Parse.com API其余部分的ruby 包装器.zip

    parse_resource, Parse.com API其余部分的ruby 包装器 ParseResource维护者需要不幸的是,我无法给这个库所需的时间。 如果你想成为一个维护者,请让我知道。 ParseResource使与 Parse.com's REST API 交互变得容易...

    py4j源码安装包源码

    安装JayDeBeApi时,如果报错,提示:error: Could not find suitable distribution for Requirement.parse('py4j') 需要先安装这个py4j

    Android端zip压缩与解压.zip

    Android端zip压缩与解压,目前暂时只做zip格式支持,基于Zip4j (http://www.lingala.net/zip4j/)进行扩展成工具类,支持对单个文件,多个文件以及文件夹进行压缩,对压缩文件解压到到指定目录,支持压缩解压使用密码...

    Python反编译pyc完全教程.doc

    使用 IDLE 编辑器,输入 from decompile import main,然后输入 main('', '.', ['c:\\ped.pyc']),其中 c:\\ped.pyc 是要反编译的文件路径。然后,等待一会儿,就可以在 C 盘上看到反编译后的文件 ped.pyc_dis。 ...

    json parse

    总结一下,JSON和XML之间的转换以及将JSON数据映射到Map是软件开发中的常见任务,特别是在跨平台数据交互和API开发中。理解如何正确地执行这些操作对于任何IT专业人员来说都是至关重要的技能。提供的`src`和`lib`...

    AndroidSDK下/platform-tools/api/annotations.zip资源api.rar

    编译时如果遇到以下报错:app:lintVitalRelease[Fatal Error] :43:...java.io.IOException: Could not parse XML from annotations/android/widget/annotations.xml 请将本文件替换SDK目录下的/platform-tools/api资源

    MindSpore报错解决地图2022.10.21

    MindSpore报错解决地图2022.10.21主要涵盖了MindSpore在深度学习过程中遇到的各种常见问题及其解决方案。这些问题大致分为两类:数据加载与处理问题,以及网络构建与训练问题。 在数据加载与处理方面,MindSpore...

    Laravel开发-laravel-parse

    在本文中,我们将深入探讨Laravel开发中的一个重要组件——laravel-parse。这是一个专门为Laravel框架设计的Parse SDK桥接器,...无论是初学者还是经验丰富的开发者,都能从中受益,实现更快速、更可靠的Web应用开发。

    一个C#初学者做得简单计算器

    在本文中,我们将深入探讨一个C#初学者制作的简单计算器项目。这通常是学习C#编程语言时的一个经典练习,因为它涉及到基本的GUI设计、事件处理以及数学运算。通过这样的项目,初学者能够掌握C#的基础知识,并了解...

    C#初学者简单计算器

    在本文中,我们将深入探讨如何使用C#编程语言创建一个简单的计算器程序,这对于初学者来说是一个很好的起点。C#是一种广泛应用于开发桌面应用、游戏、移动应用和Web应用的强类型、面向对象的语言。通过创建一个...

    annotations.zip app:lintVitalRelease[Fatal Error] :3:214: 与元素类型 “item” 相关联的 “nam

    用于解决,Android构建APk时报错: ...java.io.IOException: Could not parse XML from android/accounts/annotations.xml 将上述文件替换替换SDK目录下的/platform-tools/api/下对应的文件即可解决

    gpg4win-3.1.15.exe

    上传jar包所要用到的gpg文件

    JSqlparser4.4版作者提供的应急版,解决无法解析mysql中JSON_OBJECT函数存在其它函数问题

    SELECT JSON_ARRAYAGG(obj) FROM (SELECT trt.relevance_id,JSON_OBJECT('id',CAST(trt.id AS CHAR),'taskName',trt.task_name,'openStatus',trt.open_status,'taskSort',trt.task_sort) as obj FROM tb_review_task...

    angular-parse-resource:给 parse.com 一些 $resource-esque 语义

    var myApp = angular.module('demoApp', ['angular-parse-resource']);使用您的 Parse.com 应用 ID 和应用密钥配置提供程序 myApp.config(function(parseResourceProvider) { parseResourceProvider.setConfig({ ...

    json解析时遇到英文双引号报错的解决方法

    英文双引号是JSON字符串中必须被正确转义的特殊字符之一,否则会导致解析过程中出现语法错误。 上述内容中提供的方法是通过编写一个静态方法来对字符串进行转义处理,确保字符串中的特殊字符如HTML实体编码不会干扰...

    mysql插入数据中文报错问题,最全解决方式

    nested exception is org.hibernate.exception.GenericJDBCException: could not execute statement ``` 这些错误信息表明MySQL在处理某些特殊字符(通常是中文字符)时出现了问题。 #### 原因分析 出现上述问题...

Global site tag (gtag.js) - Google Analytics