滚雪球学MyBatis-Plus(04):基础配置

2024-09-02 06:12

本文主要是介绍滚雪球学MyBatis-Plus(04):基础配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

在上期内容中,我们详细介绍了如何进行项目初始化,包括添加 MyBatis Plus 依赖、配置数据库连接,以及创建基础的实体类和 Mapper 接口。这些步骤为我们搭建了一个基本的开发框架,使我们能够快速上手 MyBatis Plus 的开发工作。

本期内容将继续深入,重点介绍 MyBatis Plus 的基础配置。我们将配置 MyBatis Plus 核心插件(如分页插件、乐观锁插件等),并设置日志和性能分析,以确保项目在开发和运行中的高效性和可靠性。

一、配置分页插件

分页是处理大量数据时常用的功能。MyBatis Plus 提供了分页插件,简化了分页操作的实现。

  1. 创建配置类

    • src/main/java/com/example/mybatisplusdemo/config 目录下创建 MyBatisPlusConfig 类:
      package com.example.mybatisplusdemo.config;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;@Configuration
      public class MyBatisPlusConfig {@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}
      }
      
  2. 配置说明

    • PaginationInterceptor:这是 MyBatis Plus 提供的分页拦截器,它会自动识别数据库类型并生成相应的分页 SQL。
二、配置乐观锁插件

乐观锁是一种在并发环境下处理数据一致性的机制。MyBatis Plus 提供了乐观锁插件,简化了乐观锁的实现。

  1. MyBatisPlusConfig 类中添加乐观锁插件配置

    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor() {return new OptimisticLockerInterceptor();
    }
    
  2. 使用乐观锁注解

    • 在实体类中添加 @Version 注解,指定乐观锁版本字段:
      package com.example.mybatisplusdemo.entity;import com.baomidou.mybatisplus.annotation.TableId;
      import com.baomidou.mybatisplus.annotation.TableName;
      import com.baomidou.mybatisplus.annotation.Version;
      import lombok.Data;@Data
      @TableName("user")
      public class User {@TableIdprivate Long id;private String name;private Integer age;private String email;@Versionprivate Integer version;
      }
      
三、配置性能分析插件

在开发过程中,我们需要了解 SQL 语句的执行性能,以便进行优化。MyBatis Plus 提供了性能分析插件,帮助我们分析和优化 SQL 性能。

  1. MyBatisPlusConfig 类中添加性能分析插件配置

    import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
    import org.springframework.context.annotation.Profile;@Bean
    @Profile({"dev", "test"}) // 设置 dev 和 test 环境开启
    public PerformanceInterceptor performanceInterceptor() {PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();performanceInterceptor.setMaxTime(1000); // ms,超过此设置的ms则sql不执行performanceInterceptor.setFormat(true);return performanceInterceptor;
    }
    
  2. 配置说明

    • @Profile({"dev", "test"}):指定该配置仅在开发和测试环境下启用。
    • PerformanceInterceptor:设置 SQL 执行的最大时间,如果超过这个时间,SQL 不会执行,并且会输出格式化的 SQL 语句。
四、日志配置

为了便于调试和分析,我们需要配置项目的日志输出。

  1. 配置日志级别

    • application.yml 文件中添加日志配置:
      logging:level:com.example.mybatisplusdemo: debugcom.baomidou.mybatisplus: debug
      
  2. 使用 logback 配置日志输出格式

    • src/main/resources 目录下创建 logback-spring.xml 文件,并添加以下配置:
      <configuration><property name="LOG_FILE" value="mybatis-plus-demo.log"/><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_FILE}</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><root level="info"><appender-ref ref="FILE" /></root>
      </configuration>
      
五、测试配置

为了确保我们的配置正确,我们需要进行一些基本的测试。

  1. 测试分页功能

    • UserMapperTest 中添加分页测试:
      @Test
      public void testSelectPage() {Page<User> page = new Page<>(1, 5);IPage<User> userPage = userMapper.selectPage(page, null);assert userPage.getRecords().size() == 5;
      }
      
  2. 测试乐观锁功能

    • UserMapperTest 中添加乐观锁测试:
      @Test
      public void testOptimisticLock() {User user = userMapper.selectById(1L);user.setAge(user.getAge() + 1);userMapper.updateById(user);
      }
      
  3. 测试性能分析插件

    • 观察控制台输出,确保 SQL 语句格式化且执行时间在预期范围内。
六、总结

通过本篇文章,你已经学会了如何配置 MyBatis Plus 的分页插件、乐观锁插件和性能分析插件,并设置了日志输出。这些配置不仅提高了项目的开发效率,还为后续的开发和调试提供了便利。

下期预告

在下一期内容中,我们将深入探讨如何创建实体类和 Mapper 接口。这些实体类将映射到数据库表,而 Mapper 接口则提供与数据库交互的方法。通过这些步骤,你将学会如何将数据库表结构映射到 Java 对象,并实现对数据库的基本操作。敬请期待!

通过这些基础配置和测试,我们为 MyBatis Plus 项目的进一步开发奠定了坚实的基础。希望你在学习过程中能有所收获,并应用到实际项目中。让我们继续这段学习之旅吧!

这篇关于滚雪球学MyBatis-Plus(04):基础配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

mybatis-plus如何根据任意字段saveOrUpdateBatch

《mybatis-plus如何根据任意字段saveOrUpdateBatch》MyBatisPlussaveOrUpdateBatch默认按主键判断操作类型,若需按其他唯一字段(如agentId、pe... 目录使用场景方法源码方法改造首先在service层定义接口service层接口实现总结使用场景my

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级