滚雪球学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的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10