滚雪球学MyBatis-Plus(04):根本设置

[复制链接]
发表于 2026-1-29 06:51:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
媒介

在上期内容中,我们详细先容了怎样举行项目初始化,包罗添加 MyBatis Plus 依靠、设置数据库毗连,以及创建根本的实体类和 Mapper 接口。这些步调为我们搭建了一个根本的开发框架,使我们可以大概快速上手 MyBatis Plus 的开发工作。
本期内容将继续深入,重点先容 MyBatis Plus 的根本设置。我们将设置 MyBatis Plus 焦点插件(如分页插件、乐观锁插件等),并设置日志日志和性能分析,以确保项目在开发和运行中的高效性和可靠性。
一、设置分页插件

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

  • 创建设置类:

    • 在 src/main/java/com/example/mybatisplusdemo/config 目次下创建 MyBatisPlusConfig 类:
      1. package com.example.mybatisplusdemo.config;
      2. import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
      3. import org.springframework.context.annotation.Bean;
      4. import org.springframework.context.annotation.Configuration;
      5. @Configuration
      6. public class MyBatisPlusConfig {
      7.     @Bean
      8.     public PaginationInterceptor paginationInterceptor() {
      9.         return new PaginationInterceptor();
      10.     }
      11. }
      复制代码

  • 设置分析:

    • PaginationInterceptor:这是 MyBatis Plus 提供的分页拦截器,它会自动辨认数据库范例并天生相应的分页 SQL。

二、设置乐观锁插件

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

  • 在 MyBatisPlusConfig 类中添加乐观锁插件设置:
    1. @Bean
    2. public OptimisticLockerInterceptor optimisticLockerInterceptor() {
    3.     return new OptimisticLockerInterceptor();
    4. }
    复制代码
  • 使用乐观锁注解:

    • 在实体类中添加 @Version 注解,指定乐观锁版本字段:
      1. package com.example.mybatisplusdemo.entity;
      2. import com.baomidou.mybatisplus.annotation.TableId;
      3. import com.baomidou.mybatisplus.annotation.TableName;
      4. import com.baomidou.mybatisplus.annotation.Version;
      5. import lombok.Data;
      6. @Data
      7. @TableName("user")
      8. public class User {
      9.     @TableId
      10.     private Long id;
      11.     private String name;
      12.     private Integer age;
      13.     private String email;
      14.     @Version
      15.     private Integer version;
      16. }
      复制代码

三、设置性能分析插件

在开发过程中,我们必要相识 SQL 语句的实行性能,以便举行优化。MyBatis Plus 提供了性能分析插件,资助我们分析和优化 SQL 性能。

  • 在 MyBatisPlusConfig 类中添加性能分析插件设置:
    1. import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
    2. import org.springframework.context.annotation.Profile;
    3. @Bean
    4. @Profile({"dev", "test"}) // 设置 dev 和 test 环境开启
    5. public PerformanceInterceptor performanceInterceptor() {
    6.     PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
    7.     performanceInterceptor.setMaxTime(1000); // ms,超过此设置的ms则sql不执行
    8.     performanceInterceptor.setFormat(true);
    9.     return performanceInterceptor;
    10. }
    复制代码
  • 设置分析:

    • @Profile({"dev", "test"}):指定该设置仅在开发和测试环境下启用。
    • PerformanceInterceptor:设置 SQL 实行的最大时间,假如凌驾这个时间,SQL 不会实行,而且会输特别式化的 SQL 语句。

四、日志日志设置

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

  • 设置日志级别:

    • 在 application.yml 文件中添加日志设置:
      1. logging:
      2.   level:
      3.     com.example.mybatisplusdemo: debug
      4.     com.baomidou.mybatisplus: debug
      复制代码

  • 使用 logback 设置日志输特别式:

    • 在 src/main/resources 目次下创建 logback-spring.xml 文件,并添加以下设置:
      1. <configuration>
      2.     <property name="LOG_FILE" value="mybatis-plus-demo.log"/>
      3.     <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
      4.         <file>${LOG_FILE}</file>
      5.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      6.             <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
      7.         </rollingPolicy>
      8.         <encoder>
      9.             <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
      10.         </encoder>
      11.     </appender>
      12.     <root level="info">
      13.         <appender-ref ref="FILE" />
      14.     </root>
      15. </configuration>
      复制代码

五、测试设置

为了确保我们的设置精确,我们必要举行一些根本的测试。

  • 测试分页功能:

    • 在 UserMapperTest 中添加分页测试:
      1. @Test
      2. public void testSelectPage() {
      3.     Page<User> page = new Page<>(1, 5);
      4.     IPage<User> userPage = userMapper.selectPage(page, null);
      5.     assert userPage.getRecords().size() == 5;
      6. }
      复制代码

  • 测试乐观锁功能:

    • 在 UserMapperTest 中添加乐观锁测试:
      1. @Test
      2. public void testOptimisticLock() {
      3.     User user = userMapper.selectById(1L);
      4.     user.setAge(user.getAge() + 1);
      5.     userMapper.updateById(user);
      6. }
      复制代码

  • 测试性能分析插件:

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

六、总结

通过本篇文章,你已经学会了怎样设置 MyBatis Plus 的分页插件、乐观锁插件和性能分析插件,并设置了日志输出。这些设置不光进步了项目的开发服从,还为后续的开发和调试提供了便利。
下期预告

在下一期内容中,我们将深入探究怎样创建实体类和 Mapper 接口。这些实体类将映射到数据库表,而 Mapper 接口则提供与数据库交互的方法。通过这些步调,你将学会怎样将数据库表布局映射到 Java 对象,并实现对数据库的根本利用。敬请等待!
通过这些根本设置和测试,我们为 MyBatis Plus 项目的进一步开发奠基了结实的根本。渴望你在学习过程中能有所劳绩,并应用到现实项目中。让我们继续这段学习之旅吧!
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表