在做springboot和mybatis的整合案例时,就是一个简单的到数据库查询数据的操作,发现竟然处理了如标题的异常,无法查询出想要的数据,mapper接口和mapper映射文件无法对应,通过查找资料,有以下解决办法:
首先:我出现的异常:
我的mapper接口和mapper映射文件的位置:
异常的分析:
出现异常后,我用debug进行调试,发现请求能到controller层,在service层出现了异常:
解决方案:
1. 在application.yml中配置
mapper-locations: classpath:mapper/*.xml 用来在target目录下找到mapper映射文件的
配置了之后,当程序运行时就会在.class文件目录找到对应的mapper映射文件:
再次访问的结果:
2. 第二种方法:
将mapper映射文件和mapper接口放在同一个包下面:
在pom.xml文件种加入以下部分:主要是mapper.xml文件IDEA运行时无法编译,添加之后,IDEA就可以将mapper.xml文件编译,mapper接口也就能找到了mapper映射文件了。
在pom.xml中添加代码如下: <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build>
访问结果如下:http://localhost/hello/1
注意:只是讲解了我认为重要的点,一些基本的注解配置什么的就不讲了,希望对你有用。