自定义mapper.java,springboot配置自定义mapper.xml文件

1.声明mapper接口

package com.hundsun.one.mapper;

@Repository

public interface ResultUserRoleMapper extends BaseMapper {

/**

* 分页查询

* @param page

* @return

*/

Page pageUsers(@Param("page") Page page);

}

2.创建mapper配置文件

SELECT

u.username,u.name,u.employee_no,u.email,r.role_name,u.update_time

FROM mgr_user u

INNER JOIN mgr_user_role ur

ON u.user_id = ur.user_id

INNER JOIN mgr_role r

ON ur.role_id = r.role_id

3.启动类上扫描Mapper包

@EnableSwagger2

@SpringBootApplication

@MapperScan("com.hundsun.one.mapper")

public class OneApplication {

public static void main(String[] args) {

SpringApplication.run(OneApplication.class, args);

}

}

4.运行项目,访问接口,结果报错

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.hundsun.one.mapper.ResultUserRoleMapper.pageUsers

#报错原因:找不到mapper接口下的pageUsers接口方法

5.排查问题

#检查了启动类上的注解@mapperscan,发现包扫描路径是对的

#检查了xml配置文件,命名空间配置的接口路径也是对的

#检查了方法标签的 方法id也是对的

#排查以上几个都没有问题,那就是xml配置文件的路径问题

# 尝试了几种办法,将xml配置文件放到接口所在的包下,

将xml文件放到resource目录下,

将xml文件方法resource目录下,路径配置的跟接口所在的全限定包名路径一样。

#都没有解决问题

#在网上搜索了很多方案,都没有解决

6.在mybatis-plus官网找到了解决方案

7faaee431f0108be1843a2c4b7483955.png

7.我把mapper.xml配置文件放到resource目录下,在applicaton.yml或者applicaton.yaml或者applicaton.properties文件配置路径

# 配置mapper.xml文件

mybatis-plus.mapper-locations=classpath:*.xml

8.mapper自定义接口找不到的问题解决了,正常访问数据库