MyBatis-plus中自定义SQL语句详解

前言:

  1. 能够使mybatis-plus像mybatis一样在xml中写SQL
  2. 前提是原本可以在项目中正常使用mybatis-plus
  3. 只需要三步

目录结构:


MyBatis-plus中自定义SQL语句详解_第1张图片
模块结构.jpeg

MyBatis-plus中自定义SQL语句详解_第2张图片
mapper文件下结构.jpeg
一. xml文件

在同目录下面复制一份xxxMapper.xm文件,修改名称为xxxExtMapper.xm






    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    

    


注意:1. namespace一定要修改成xxxExtMapper.java所对应的全名称
二. mapper文件

在同目录下面复制一份xxxMapper.java文件,修改名称为xxxExtMapper.java

package com.test.mapper;

import com.test.entity.WxUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface WxUserExtMapper {
   
    List selectMethod();

    WxUser oneUser(@Param("id") Integer id);
}
三. 引入xml文件路径

打开所在模块的下的pom文件,增加以下代码


    
        
        
            src/main/resources
            true
        
        
        
            src/main/java
            
                **/*.xml
            
        
    

  其他: 1. 在@Autowired  private WxUserExtMapper wxUserExtMapper; 的时候
           wxUserExtMapper会标红,不用理会
        2. 没有做第三步,在调用时会报异常(看了其他博主的解决方法也是):
           通用异常org.apache.ibatis.binding.BindingException: 
           Invalid bound statement (not found): com.test.mapper.WxUserExtMapper.oneUser
        3. 若将ExtMapper.xml文件放入静态文件目下的话,就需要更改mybatis.mapper-locations
           的路径(为xml文件的存放路径),所以在自动生成类的时候就需要调整好各个类的结构,
           以便增加自定义SQL的时候,项目结构不会看起来很乱

你可能感兴趣的:(MyBatis-plus中自定义SQL语句详解)