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

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

MyBatis常用XML语法详解

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

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

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

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

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

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

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

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

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

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