欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring整合mybatis报错Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容

程序员文章站 2022-03-24 12:41:54
...

在spring的配置文件中配置mybatis时使用的是:

    <!--控制和MyBatis整合-->
    <bean class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--指定Mybatis全局配置文件路径-->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <property name="dataSource" ref="pooledDAtaSource"/>
        <!--指定mybatis的mapper文件路径-->
        <property name="mapperLocations" value="classpath:mapper"/>
    </bean>

这样写时提示Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容,后来百度,大多都是说生成的xml文件带bom格式,解决办法如下:

怀疑是字符编码问题,于是把新提交的mapper文件复制出来用notepad打开,点击格式菜单,发现这几个文件的编码格式都是 “以UTF-8格式编码”,改成 “以UTF-8无BOM格式编码”,保存之后再复制回来,启动项目,报错消失

但是发现编码并没有问题,后来找到原因,是指定的mapper.xml文件路径错误,配置片段改为:

    <!--控制和MyBatis整合-->
    <bean class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--指定Mybatis全局配置文件路径-->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <property name="dataSource" ref="pooledDAtaSource"/>
        <!--指定mybatis的mapper文件路径,这里进行了路径修改-->
        <property name="mapperLocations" value="classpath*:/mapper/*Mapper.xml"/>
    </bean>