:
最近学的很痛苦,由范型接口,返回值和入参可以根据范型变化。然后又转到了mybatisPlus的Mapper,想自己重写一个类似范型的映射sql,但是能力有限。后面又偷偷了解了下自定义注解开发。给自己挖了很多坑。记录下目前学的一些皮毛。
mybatis-plus依赖坐标:
<!-- mybatis-plus-boot起步依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
We can see from the above that mybatis-plus already packaged with mybatis & mybatis-spring ,should be careful that don’t add relative dependencies again to avoid conflict.
配置分页拦截器:
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Description: Mybatis-plus 拦截器
* @Author: Spike Wong
* @Date: 2022/6/5
*/
@Configuration
public class MpConfig {
@Bean
public MybatisPlusInterceptor mpInterceptor() {
//1.定义Mp拦截器
MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor();
//2.添加具体的拦截器
mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
//3.添加乐观所拦截器
mpInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return mpInterceptor;
}
}
这个拦截器的bean,要注入到sqlSessionFactory的bean中的sessionFactory.setPlugins(mybatisPlusInterceptor);
PS:自 Mybatis-plus3.4.0 版本后,都是使用的MybatisPlusInterceptor 来进行的拦截 所以推荐使用3.4.0 以后的版本
- Enable log in application.yml
#mybatis-plus配置控制台打印完整带参数SQL语句
mybatis-plus:
configuration:
map-underscore-to-camel-case: false #把驼峰转换关掉,否则大小写带下划线驼峰转换
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启日志
# global-config: #全局配置
# db-config: #数据库配置
# # 代表数据库前缀为tb_
# table-prefix: tb_
# id-type: auto
# table-underline: false
- 在Properties中的配置
#mybatis-plus配置控制台打印完整带参数SQL语句
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
多数据源,驼峰开关会失效:
mybatis-plus:
configuration:
map-underscore-to-camel-case: false
需要在制作bean的时候配置如下:
//mybatis:
//开启驼峰