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家目录下面删除这个空文件既...

    py4j源码安装包源码

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

    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 交互变得容易...

    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。 ...

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

    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资源

    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文件

    MindSpore报错解决地图2022.10.21

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

    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.stringify()报错:JSON未定义

    标题中的“JSON.stringify()报错:JSON未定义”是一个常见的JavaScript错误,通常出现在尝试使用`JSON.stringify()`方法但全局环境中没有定义JSON对象时。在浏览器环境中,JSON是默认支持的,但在某些旧版本的IE...

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

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

Global site tag (gtag.js) - Google Analytics