MybatisPlus-常用配置-基本配置

1,097 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 4 天,点击查看活动详情

在MP中有大量的配置,其中有一部分是Mybatis原生的配置,另一部分是MP的配置,详情:mybatis.plus/confifig/

更多的配置可以去官网查看

下面我们对常用的配置做讲解。

基本配置

confifigLocation (全局配置文件)

MyBatis 配置文件位置,如果您有单独的 MyBatis 配置,请将其路径配置到 confifigLocation 中。

MyBatis Confifiguration 的具体内容请参考MyBatis 官方文档

SpringBoot: 很简单 只需要在application.properties里面加个这个配置项即可

 #  指定MybatisPlus全局配置文件
mybatis-plus.config-location = classpath:mybatis-config.xml 

如何验证呢? 其实很简单

还记得我们执行写分页的时候配置的分页拦截器插件吗?

把里面的bean注释掉,在全局配置文件进行分页配置

<plugins>
    <plugin interceptor = "com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor" ></plugin>
</plugins>

重新进行分页查询,如果还是可以显示分页属性 那么就是说可以配置生效了

SpringMVC:

<bean id="sqlSessionFactory" 
class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean"> 
<property name="configLocation" value="classpath:mybatis-config.xml"/> 
</bean> 
mapperLocations (自定义mapper文件路径)

MyBatis Mapper 所对应的 XML 文件位置,如果您在 Mapper 中有自定义方法(XML 中有自定义实现),需要进行该配置,告诉 Mapper 所对应的 XML 文件位置。

如果MP提供的API不能满足我们需求的时候,我们可以自己在mapper.xml里面自定义SQL,这个配置就是告诉MP我们的mapper.xml所在的位置

SpringBoot:

 #  指定mapper.xml的文件路径
mybatis-plus.mapper-locations = classpath*:mapper/*.xml 

注意 配置的路径和创建的路径一定要保持一致

比如我现在有个sql MP提供的API已经不能满足我了,我需要自己创建mapper自定义sql

mapper.xml

 < ? 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.wyh.mapper.UserMapper" >

    <select id = "findByIDWYH" resultType = "com.wyh.entity.User" >
            select name from tb_user where id=#{id}
    </select>

</mapper>
 

mapper

package com.wyh.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wyh.entity.User;

/**
*  @description: 
 *  @author:  魏一鹤
*  @createDate:  2022-08-25 22:01
**/
public interface UserMapper extends BaseMapper<User> {
    User findByIDWYH(Long id);
}

测试代码

 /**
* 测试自己写的mapper sql
**/
@Test
public void testSelfSql(){
    User user = userMapper.findByIDWYH(1L);
    System.out.println(user);
}

可以正常访问 说明我们自定义的mapper.xml已经sql生效了

SpringMVC:

<bean id="sqlSessionFactory" 
class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean"> 
<property name="mapperLocations" value="classpath*:mybatis/*.xml"/> 
</bean> 
typeAliasesPackage (别名扫描包)

MyBaits 别名包扫描路径,通过该属性可以给包中的类注册别名,注册后在 Mapper 对应的 XML 文件中可以直接使 用类名,而不用使用全限定的类名(即 XML 中调用的时候不用包含包名)。

Spring Boot:

 # 别名扫描包 可以简写实体路径 比如com.wyh.entity.User 在配置之后就可以简写 User 而不是全部路径
mybatis - plus.type - aliases - package = com.wyh.entity 

那么mapper.xml也可以简写 这里报错不是代码错误 是版本问题

运行效果都是一样的

Spring MVC:

<bean id="sqlSessionFactory" 
class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean"> 
<property name="typeAliasesPackage" 
value="com.baomidou.mybatisplus.samples.quickstart.entity"/> 
</bean>