在Mybatis的配置文件中需要使用mapper标签映射xml文件,映射包括resource、class、package三种package是class的简化版不再赘述。以下描述使用中class和resource的问题。
- 在resource下使用*.xml是无法使用的
使用*.xml的情况
<mappers>
<mapper resource="com/kuang/dao/*.xml"/>
</mappers>
@Test
public void test_01(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
List<Student> studentList =mapper.getStudent();
for (Student student : studentList) {
System.out.println(student);
}
sqlSession.close();
}
不使用*.xml的情况
<mappers>
<mapper resource="com/kuang/dao/StudentMapper.xml"/>
</mappers>
2.当class和resource同时存在并且指向同一个文件时存在两种情况
①class在resource上面时可以使用
<mappers>
<mapper class="com.kuang.dao.StudentMapper"/>
<mapper resource="com/kuang/dao/StudentMapper.xml"/>
</mappers>
②resource在class上面时不可使用
<mappers>
<mapper resource="com/kuang/dao/StudentMapper.xml"/>
<mapper class="com.kuang.dao.StudentMapper"/>
</mappers>
3,有意思的是当resource在class上面时,但是resource和class指向不同的文件时又可以使用
<mappers>
<mapper resource="com/kuang/dao/TeacherMapper.xml"/>
<mapper class="com.kuang.dao.StudentMapper"/>
</mappers>
<mappers>
<mapper resource="com/kuang/dao/StudentMapper.xml"/>
<mapper class="com.kuang.dao.TeacherMapper"/>
</mappers>
以上两种情况都可运行