在学习mybatis中,我们总会遇到这个问题,以下有几种解决方式
第一种:查看自己的mapper接口文件与自己的mapper.xml文件是否一致
一致在看namespace中的路径是否正确,namespace要写的是接口的全路径
可以使用 mybatisX插件来看
第二种:查看编译的target文件中是否有mapper,也就是有没有编译上.
可以clear一下,然后package打包.
然后查看pom中是否有配置
<!-- 如果不添加此节点src/main/java目录下的所有配置文件都会被漏掉。 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
<include>**/*.ini</include>
</includes>
</resource>
</resources>
第三种:去yml配置文件中 去看自己的配置路径
# MyBatis
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.zykj.**.domain
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
第三种的路径,包问题
想要在mapper下加入一个文件夹,然后再写xml文件
mapper接口与mapper.xml的路径要一致.
这里说一下如何展开包为层级,而不是 com.51cto.domain这种形式,23版idea是三个点,之前版本是一个齿轮.
把这个 compact 前面的对钩去了就行