BUG描述
在Mybatis核心配置文件中配置setting,顺序出错导致报错,实际上配置文件中的各个类型节点是有严格顺序的!
具体可以参考下面这篇文章:
报错完整信息
The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".
原始错误代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 数据库连接信息-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="402025"/>
</dataSource>
</environment>
</environments>
<!-- 加载sql映射文件-->
<mappers>
<mapper resource="itheima/mapper/UserMapper.xml"/>
<mapper resource="itheima/mapper/BrandMapper.xml"/>
</mappers>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
解决方案
将配置信息settings节点放在最前面即可。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 数据库连接信息-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="402025"/>
</dataSource>
</environment>
</environments>
<!-- 加载sql映射文件-->
<mappers>
<mapper resource="itheima/mapper/UserMapper.xml"/>
<mapper resource="itheima/mapper/BrandMapper.xml"/>
</mappers>
<!-- <settings>-->
<!-- <setting name="mapUnderscoreToCamelCase" value="true"/>-->
<!-- </settings>-->
</configuration>
报错消失,能够正常查询表中的所有数据
踩坑+1