【MyBatis】---- 引入映射器mapper文件失败的解决方案
程序员文章站
2023-12-27 09:26:15
...
先看引入失败的时候
映射器注册表不知道接口,我们知道映射器由 接口和XML文件组成, 接口是没错的,说明XML文件找不到。
- 解决方案一: 采用文件路径引入映射器
<mappers>
<mapper resource="mappers/EmployeeMapper.xml"/>
<mapper resource="mappers/EmployeeTaskMapper.xml"/>
<mapper resource="mappers/FemaleHealthFormMapper.xml"/>
<mapper resource="mappers/MaleHealthFormMapper.xml"/>
<mapper resource="mappers/TaskMapper.xml"/>
<mapper resource="mappers/WorkCardMapper.xml"/>
</mappers>
缺点:如果映射文件少适合用,mapper文件一旦多的话,一个一个写比较麻烦
- 解决方案二:用包名引入映射文件
如果是idea,用maven创建项目中,需要加入以下代码
原因: idea不会编译src的java目录的xml文件
pom.xml
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<!--默认是true-->
<!--<filtering>true</filtering>-->
</resource>
</resources>
</build>
mybatis-config.xml
<!--映射文件-->
<mappers>
<package name="cn.whc.March_30.mapper"/>
</mappers>
另外:映射文件名字要和接口文件相同,还需要放在同一个包下
- 解决方案三: Spring+MyBatis整合
一般入门Mybatis的话,上面的两种方案比较适合;
如果入门SSM框架后,第三种方案比较好
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath*:mappers/*Mapper.xml"></property>
</bean>
此时的mapper文件应该放在resources目录下