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>
上一篇: Mybatis if test无效的原因(字符串比较)
下一篇: mybatis中if的test