关于mybatis-plus配置xml映射路径不生效的问题

一、前言

​ 今天要启动一个新项目,准备搭建基础结构,想来mybatis-plus是肯定要上的,springboot也是异常方便,心里想着先搞好结构然后就咔咔把一通拦截器之类直接cv就结束了,没想到又被自己坑了,关键这个坑上次配项目的时候就踩过,于是这篇随笔就这样诞生了,下次就可以给我的猪脑子提个醒,省的再浪费时间找问题了。

二、mybatis-plus配置

​ 既然写都写了,那干脆就来一个完整配置记录好了。

​ 首先在创建的项目pom文件中添加maven依赖,如下:

 <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
 </dependency>
 <dependency>
     <groupId>com.baomidou</groupId>
     <artifactId>mybatis-plus-boot-starter</artifactId>
     <version>3.4.2</version>
 </dependency>

​ 然后在application配置文件填上连接mysql的配置项,大致如下:

spring.datasource.password=
spring.datasource.username=
spring.datasource.url=
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

​ 在不添加额外连接池的配置时,spring直接默认使用hikariCP,内置了一套默认配置,hikari好东西,大家都懂。

​ 再然后可以在启动添加@MapperScan并且填上扫描dao接口的包路径,当然也可以不写,在后面从创建的每一个dao接口都加上@Mapper效果也是一样的,就是每个都加太麻烦,人嘛当然是能懒则懒,关键懒的也不失优雅就行。

​ 接下来准备一些测试dao接口,以及表和实体类:

public class TestTable {
	@TableId//主键名为id是可省略
    private Integer id;
    private String name;
    private Integer age;
    //省略getter,setter
}
@Mapper //配置@MapperScan后可省略
public interface TestDao extends BaseMapper<TestTable> {
	
	TestTable getTest();
}

​ 配置到这里已经可以正常使用mybatis-plus封装好的各种基础查询以及QueryWrapper 功能了。

三、自定义sql,xml

​ 针对业务比较复杂的B端系统来说,上面的简单查询是肯定不够用的,那么这时候是难免要使用xml格式的sql配置了,洋洋洒洒上百行一句的sql肯定是不可能用@Select注解一类的去书写的。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.demo.dao.TestDao">
	<select id="getTest" reslutType="com.example.demo.domain.TestTable">
    	<!-- 此处省略sql -->
    </select>
</mapper>

​ 按照常规书写xml就行行了,最关键的配置是下面一项:

#具体路径是项目实际路径确定,下面展示的是starer包默认配置
mybatis-plus.mapper-locations=classpath*:/mapper/*/*.xml

最坑的地方来了:在idea中创建resources下面的文件夹时,千万不能“偷懒”,像创建类一样用xx.xx.xx的方式快速创建包结构。

image-20220307232821299

​ 就这样一个结构,如果你直接mybatis.mapper建立的文件夹,那你完了。这跟先创建mybatis,再创建mapper用肉眼凡胎是指定看不出什么区别了。

​ 但是“幸运”的是,项目启动以后,在你调用sql的时候,系统会亲切的用一个Invalid bound statement (not found) 问候你。

​ 呵呵,接下来就是我下午的百思不得其解了,当然下午有点头疼状态不佳,到了晚上突然就顿悟了想起来上次搭建项目就是这么被玩的。

​ 就这样把,哎,希望能帮到有缘人~~(其实是提醒自己下次别再呵呵。。。)

posted @ 2022-03-07 23:38  其实我也不知道  阅读(1405)  评论(0编辑  收藏  举报