MyBatis - typeAliases不能正确解析问题的处理方法
Mybatis配置文件中使用typeAliases
竟然报错,错误提示:
the content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".
这个问题居然是typeAliases和environments元素在configuration中顺序引起的!!
最终总结:“configuration”中的元素必须按照上面错误提示中的元素顺序加入,如果前面的元素没有,可以忽略,但是所有元素的顺序不能颠倒,否则就会报上面错误!!
引起错误时候的配置:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://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://localhost:3306/jpetstore?autoReconnect=true&useUnicode=true&characterEncoding=utf-8" /> <property name="username" value="root" /> <property name="password" value="trymybest" /> </dataSource> </environment> </environments> <typeAliases> <package name="org.mybatis.model" /> </typeAliases> <mappers> <package name="org.mybatis.mapper" /> </mappers> </configuration>
修改后,正常工作的配置:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <package name="org.mybatis.model" /> </typeAliases> <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://localhost:3306/jpetstore?autoReconnect=true&useUnicode=true&characterEncoding=utf-8" /> <property name="username" value="root" /> <property name="password" value="trymybest" /> </dataSource> </environment> </environments> <mappers> <package name="org.mybatis.mapper" /> </mappers> </configuration>
参考: