面试官让我讲讲Mybatis-Plus有哪些牛逼功能

2024-03-13 00:36

本文主要是介绍面试官让我讲讲Mybatis-Plus有哪些牛逼功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


Mybatis-Plus是一款插件,用于增强Mybais框架,logo类似于魂斗罗中的两兄弟。所以在 Mybatis与Mybatis-Plus是可以共存的。Mybatis-Plus中的每个Mapper都继承了BaseMapper,BaseMapper给我们提供了单表的CRUD操作。除了这个牛逼功能外,还有以下功能可以按需引入。

日志

日志打印在dev环境配置,pro环境不配置

实现方式

配置文件中配置

mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

主键生成策略

目前有两种方式,待选择

  1. 设置数据库主键自增,Mybatis-plus主键自动生成策略为 AUTO
  2. 雪花算法,Mybatis-plus基于雪花算法实现的。自动生成策略为 ID_WORKER

实现方式

主键字段添加注解@TableId(type = IdType.ID_WORKER )即可,type的值是主键生成策略,可选。
注:如果使用AUTO,数据库需要设置主键自增

自动填充创建时间与更新时间

基于Mybatis-plus的扩展功能,自动填充表中创建时间与更新时间,无需setXxx()来设置时间。

实现方式

  • 自定义实现类 MyMetaObjectHandler,实现元对象处理器接口:com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
  • 注解填充字段 @TableField(… fill = FieldFill.INSERT) 生成器策略可配置

注:自定义处理器需要交由Spring管理(添加@Component注解)

是否添加乐观锁字段

基于Mybatis-plus的插件功能,实现乐观锁功能

实现方式

  1. 配置插件,注入官方指定的bean:OptimisticLockerInterceptor
  2. 实体类添加@Version注解

注:数据库设计时需要设置默认值,仅支持 updateById(id) 与 update(entity, wrapper) 方法

分页插件

配置拦截器主键,使用Page对象即可

逻辑删除

Mybatis-plus的扩展功能,删除时自动逻辑删除

实现方式

  1. 数据库增加deleted字段,并设置默认值0(未删除)
  2. 逻辑删除字段添加注解 @TableLogic
  3. 添加逻辑删除组件
@Bean
public ISqlInjector sqlInjector() {return new LogicSqlInjector();
}
  1. 配置逻辑删除
global-config:db-config:logic-delete-value: 1     # 删除logic-not-delete-value: 0 # 未删除

性能分析插件

基于Mybatis-plus的性能分析插件,提供SQL格式化,SQL查询时间超时自动失败等问题

实现方式

  1. 注入扩展功能插件
@Bean
@Profile({"dev"})// 设置 dev 环境开启,保证我们的效率
public PerformanceInterceptor performanceInterceptor() {PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();performanceInterceptor.setMaxTime(100); // ms设置sql执行的最大时间100ms,如果超过了则不执行performanceInterceptor.setFormat(true); // 是否格式化代码return performanceInterceptor;
}

这篇关于面试官让我讲讲Mybatis-Plus有哪些牛逼功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/803100

相关文章

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

录音功能在哪里? 电脑手机等设备打开录音功能的技巧

《录音功能在哪里?电脑手机等设备打开录音功能的技巧》很多时候我们需要使用录音功能,电脑和手机这些常用设备怎么使用录音功能呢?下面我们就来看看详细的教程... 我们在会议讨论、采访记录、课堂学习、灵感创作、法律取证、重要对话时,都可能有录音需求,便于留存关键信息。下面分享一下如何在电脑端和手机端上找到录音功能

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码