本次使用的Springboot来整合Mybatis去调用数据库进行操作,发现按照以往的Mybatis常规操作,遇到了一些问题。
在使用注解时,能够完美运行。
在使用xml时,按照以往的com.xxx.mapper进行接口和xml的书写发现出现了问题。
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.rachel.springbootmybatis.mapper.Userxmlmapper.selectAll
首先在Target目录下进行了排查
发现xml文件是存在的。
另外又对mapper常出的问题进行了排查,具体如下:
- ?Mapper.接口名称和Mapper.xml是否一致
- Mapper接口中的方法是否在Mapper.xml中均被实现
- Mapper.xml中的namespace是否为Mapper接口的应用路径
- application.propertis或application.yml配置mybatis.type-aliases-package配置实体路径是否正确
- application.propertis或application.yml配置mybatis.mapper-locations是否正确
- springboot入口程序中是否有添加@MapperScan(“com.xx.xx.xx.xx.dao.mapper”)注解,路径是否到mapper的包名
发现均没有问题,再看yaml文件的配置
#datasoure
spring:
datasource:
url: jdbc:mysql://localhost:3306/springboot
username: root
password: 527113
driver-class-name: com.mysql.cj.jdbc.Driver
#mybatis
mybatis:
#mapper映射
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.rachel.springbootmybatis.domain.User
#配置Type路径
#mybatis-config配置
?发现也没什么问题。
结果是发现在pom配置中出了问题。在pom中加上如下配置就OK了
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
问题得到解决。
|