Mybatis 中Mapper使用package方式配置mapper文件 报错
mybatis全局配置文件
<?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><properties resource="db.properties"></properties><typeAliases><package name="com.demo.entity"/></typeAliases><environmentsdefault="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments><mappers><!--<mapper resource="mapper/StudentMapper.xml"/>--><package name="com.demo.mapper"/></mappers></configuration>
测试mapper.xml
<mapper namespace="com.demo.mapper.StudentMapper"><select id="selAll" resultType="Student">
select* from student</select></mapper>
测试方法
@TestpublicvoidtestSelAll(){
SqlSession sqlSession=getSqlSession();
StudentMapper mapper= sqlSession.getMapper(StudentMapper.class);
List<Student> students= mapper.selAll();for(Student student: students){
System.out.println(student);}}
报错原因:在maven项目中,如果在resources中创建mapper.xml文件存放的应当是一个包中,我们正常使用com.demo.mapper(测试使用包名),在resources中只是一个文件夹而不是包。
解决方法:在resources文件中创建包名为:com/demo/mapper
这样创建出来的就是个包,然后将相应的xml配置文件放进去,在mybatis的全文配置文件中配置一下,就可以啦!
修改之后结果: