开启掘金成长之旅!这是我参与「掘金日新计划 · 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>