滚雪球学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

相关文章

IDEA中配置Tomcat全过程

《IDEA中配置Tomcat全过程》文章介绍了在IDEA中配置Tomcat的六步流程,包括添加服务器、配置部署选项、设置应用服务器及启动,并提及Maven依赖可能因约定大于配置导致问题,需检查依赖版本... 目录第一步第二步第三步第四步第五步第六步总结第一步选择这个方框第二步选择+号,找到Tomca

Win10安装Maven与环境变量配置过程

《Win10安装Maven与环境变量配置过程》本文介绍Maven的安装与配置方法,涵盖下载、环境变量设置、本地仓库及镜像配置,指导如何在IDEA中正确配置Maven,适用于Java及其他语言项目的构建... 目录Maven 是什么?一、下载二、安装三、配置环境四、验证测试五、配置本地仓库六、配置国内镜像地址

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Debian系和Redhat系防火墙配置方式

《Debian系和Redhat系防火墙配置方式》文章对比了Debian系UFW和Redhat系Firewalld防火墙的安装、启用禁用、端口管理、规则查看及注意事项,强调SSH端口需开放、规则持久化,... 目录Debian系UFW防火墙1. 安装2. 启用与禁用3. 基本命令4. 注意事项5. 示例配置R

PyCharm中配置PyQt的实现步骤

《PyCharm中配置PyQt的实现步骤》PyCharm是JetBrains推出的一款强大的PythonIDE,结合PyQt可以进行pythion高效开发桌面GUI应用程序,本文就来介绍一下PyCha... 目录1. 安装China编程PyQt1.PyQt 核心组件2. 基础 PyQt 应用程序结构3. 使用 Q

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

mybatis中resultMap的association及collectio的使用详解

《mybatis中resultMap的association及collectio的使用详解》MyBatis的resultMap定义数据库结果到Java对象的映射规则,包含id、type等属性,子元素需... 目录1.reusltmap的说明2.association的使用3.collection的使用4.总