• 3.SpringBoot集成Mybatis Plus


    3. 集成Mybatis Plus

    3.1 配置基础依赖⚙️

    👉首先,项目中会使用到mysql、mybatis-plus、druid数据连接池等等功能,接下来我们就一一讲解一下。

    依赖名称依赖描述版本
    mysql-connector-java:mysql-connector-javamysql驱动8.0.29
    com.alibaba:druid阿里巴巴Druid数据库连接池1.2.11
    com.baomidou:mybatis-plus-boot-startermybatis-plus的依赖3.5.2
    com.baomidou:mybatis-plus-generatormybatis-plus的自动生成代码插件3.5.2
    org.apache.velocity:velocity-engine-coreJava 的模板引擎框架,用于代码自动生成2.3
    org.projectlombok:lombok代码简化,getter/setter、构造器编译时生成1.18.24
    com.alibaba:fastjson阿里巴巴Json操作工具类2.0.7

    完整的pom.xml文件如下:👇

    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0modelVersion>
    	<parent>
    		<groupId>org.springframework.bootgroupId>
    		<artifactId>spring-boot-starter-parentartifactId>
    		<version>2.3.12.RELEASEversion>
    		<relativePath/> 
    	parent>
    	<groupId>com.maplegroupId>
    	<artifactId>maple-demoartifactId>
    	<version>0.0.1-SNAPSHOTversion>
    	<name>maple-demoname>
    	<description>Demo project for Spring Bootdescription>
    
    	<properties>
    		<java-version>1.8java-version>
    		<lombok-version>1.18.24lombok-version>
    		<druid-version>1.2.11druid-version>
    		<mybatis-plus-version>3.5.2mybatis-plus-version>
    		<velocity-version>2.3velocity-version>
    		<fastjson-version>2.0.7fastjson-version>
    		<mysql-connector-version>8.0.29mysql-connector-version>
    	properties>
    
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.bootgroupId>
    			<artifactId>spring-boot-starterartifactId>
    		dependency>
    
    		<dependency>
    			<groupId>org.springframework.bootgroupId>
    			<artifactId>spring-boot-starter-testartifactId>
    			<scope>testscope>
    			<exclusions>
    				<exclusion>
    					<groupId>org.junit.vintagegroupId>
    					<artifactId>junit-vintage-engineartifactId>
    				exclusion>
    			exclusions>
    		dependency>
    
    		
    		<dependency>
    			<groupId>org.springframework.bootgroupId>
    			<artifactId>spring-boot-starter-webartifactId>
    		dependency>
    
    		
    		<dependency>
    			<groupId>mysqlgroupId>
    			<artifactId>mysql-connector-javaartifactId>
    			<version>${mysql-connector-version}version>
    		dependency>
    		
    		<dependency>
    			<groupId>com.alibabagroupId>
    			<artifactId>druid-spring-boot-starterartifactId>
    			<version>${druid-version}version>
    		dependency>
    
    		
    		<dependency>
    			<groupId>com.baomidougroupId>
    			<artifactId>mybatis-plus-boot-starterartifactId>
    			<version>${mybatis-plus-version}version>
    		dependency>
    		
    		<dependency>
    			<groupId>com.baomidougroupId>
    			<artifactId>mybatis-plus-generatorartifactId>
    			<version>${mybatis-plus-version}version>
    		dependency>
    		<dependency>
    			<groupId>org.apache.velocitygroupId>
    			<artifactId>velocity-engine-coreartifactId>
    			<version>${velocity-version}version>
    		dependency>
    
    		
    		<dependency>
    			<groupId>org.projectlombokgroupId>
    			<artifactId>lombokartifactId>
    			<scope>providedscope>
    			<version>${lombok-version}version>
    		dependency>
    
    		
    		<dependency>
    			<groupId>com.alibabagroupId>
    			<artifactId>fastjsonartifactId>
    			<version>${fastjson-version}version>
    		dependency>
    	dependencies>
    
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.bootgroupId>
    				<artifactId>spring-boot-maven-pluginartifactId>
    			plugin>
    		plugins>
    	build>
    project>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106

    3.2 引入Mysql配置

    👉首先我们需要创建一个Mysql数据库maple,字符集选择utf8。这里我们使用的工具是Navicat Premium 11。当然其他工具都是一样,没有特使要求。

    image-20220710141353991

    👉创建一张usc_user表,当然有很多字段我们可能暂且不需要,暂且保留,sql如下:👇

    CREATE TABLE `usc_user` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
      `account` varchar(30) DEFAULT NULL COMMENT '用户账号',
      `user_name` varchar(30) DEFAULT NULL COMMENT '用户姓名',
      `nick_name` varchar(30) DEFAULT NULL COMMENT '用户昵称',
      `user_type` varchar(2) DEFAULT '00' COMMENT '用户类型(00系统用户,01小程序用户)',
      `email` varchar(50) DEFAULT '' COMMENT '用户邮箱',
      `phone` varchar(11) DEFAULT '' COMMENT '手机号码',
      `sex` char(1) DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)',
      `avatar` varchar(100) DEFAULT '' COMMENT '头像地址',
      `salt` varchar(32) DEFAULT NULL COMMENT '用户加密盐值',
      `password` varchar(100) DEFAULT '' COMMENT '密码',
      `status` char(1) DEFAULT '0' COMMENT '帐号状态(0正常 1停用)',
      `create_id` bigint(20) DEFAULT NULL COMMENT '创建人id',
      `create_name` varchar(64) DEFAULT '' COMMENT '创建者',
      `create_time` datetime DEFAULT NULL COMMENT '创建时间',
      `update_id` bigint(20) DEFAULT NULL COMMENT '更新人id',
      `update_name` varchar(64) DEFAULT '' COMMENT '更新者',
      `update_time` datetime DEFAULT NULL COMMENT '更新时间',
      `delete_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志',
      `remark` varchar(500) DEFAULT NULL COMMENT '备注',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='用户中心-用户信息表';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    👉创建好数据库后,配置我们项目的application.yml文件

    server:
      port: 6666
    
    spring:
      application:
        name: maple-admin
      # 配置数据库连接
      datasource:
        # 数据库连接地址及常用配置
        url: jdbc:mysql://127.0.0.1:3306/maple?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
        # 数据库连接驱动
        driverClassName: com.mysql.cj.jdbc.Driver
        # 数据库用户
        username: root
        # 数据库用户密码
        password: 123456
        # 配置druid数据库连接池---------------------------------------
        type: com.alibaba.druid.pool.DruidDataSource
        druid:
          # 初始化大小,最小,最大
          initialSize: 5
          minIdle: 5
          maxActive: 20
          # 配置获取连接等待超时的时间
          maxWait: 60000
          # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
          timeBetweenEvictionRunsMillis: 60000
          # 配置一个连接在池中最小生存的时间,单位是毫秒
          minEvictableIdleTimeMillis: 300000
          # 校验SQL,Oracle配置 spring.datasource.validationQuery=SELECT 1 FROM DUAL,如果不配validationQuery项,则下面三项配置无用
          validationQuery: SELECT 'x'
          testWhileIdle: true
          testOnBorrow: false
          testOnReturn: false
          # 打开PSCache,并且指定每个连接上PSCache的大小
          poolPreparedStatements: true
          maxPoolPreparedStatementPerConnectionSize: 20
          # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
          filters: stat,wall
          # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
          connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
          # 合并多个DruidDataSource的监控数据
          useGlobalDataSourceStat: true
    
    # 配置mybatis-plus的xml和bean的目录
    mybatis-plus:
      mapper-locations: classpath:mapper/*.xml
      configuration:
        # 开启驼峰功能
        map-underscore-to-camel-case: true
        # 日志打印功能
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
      #逻辑删除配置
      global-config:
        db-config:
          # 逻辑已删除值(默认为 1)
          logic-delete-value: 1
          # 逻辑未删除值(默认为 0)
          logic-not-delete-value: 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59

    至此,我们的数据库配置已经完成✌。接下来我们配置一下Mybatis-plus。

    3.3 引入MyBatis-Plus配置

    配置MyBatis-Plus

    • MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

    • MyBatis-Plus是基于MyBatis框架进一步的封装,增强了MyBatis的功能,只需简单配置,即可快速进行单表 CRUD 操作,从而节省大量时间,以及一些常用工具的封装。

    • MyBatis中文文档地址:https://mybatis.org/mybatis-3/zh/index.html

    • MyBatis-Plus官方地址:https://baomidou.com/

    接下来我们就一起配置一下MyBatis-Plus:

    这里我们会使用Mybatis-plus生成代码、分页、逻辑删除、常用字段自动注入数据等插件。

    👉首先是application.yml

    # 配置mybatis-plus的xml和bean的目录
    mybatis-plus:
      mapper-locations: classpath:mapper/*.xml
      configuration:
        map-underscore-to-camel-case: true    # 开启驼峰功能
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl    # 日志打印功能
      global-config:  #逻辑删除配置
        db-config:
          logic-delete-value: 1 # 逻辑已删除值(默认为 1)
          logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    然后我们在com.maple.demo下创建config目录存放我们的系统配置,在config目录创建MybatisPlusConfig.java文件

    这里配置下Mybaits的自动填充机制和druid监控页面

    package com.maple.demo.config;
    
    import com.alibaba.druid.support.http.StatViewServlet;
    import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
    import org.apache.ibatis.reflection.MetaObject;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.web.servlet.ServletRegistrationBean;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
    
    import javax.servlet.Servlet;
    import java.util.Date;
    
    /**
     * Mybatis plus配置
     *
     * @author 笑小枫
     * @date 2022/7/10
     */
    @EnableTransactionManagement
    @Configuration
    @MapperScan("com.maple.demo.mapper")
    public class MybatisPlusConfig implements MetaObjectHandler {
    
        /**
         * 新增时,自动填充数据
         */
        @Override
        public void insertFill(MetaObject metaObject) {
            this.setFieldValByName("isDeleted", false, metaObject);
            this.setFieldValByName("createId", 1L, metaObject);
            this.setFieldValByName("createName", "占位符", metaObject);
            this.setFieldValByName("createTime", new Date(), metaObject);
            this.setFieldValByName("updateId", 1L, metaObject);
            this.setFieldValByName("updateName", "占位符", metaObject);
            this.setFieldValByName("updateTime", new Date(), metaObject);
        }
    
        /**
         * 修改时,自动填充数据
         */
        @Override
        public void updateFill(MetaObject metaObject) {
            this.setFieldValByName("updateId", 1L, metaObject);
            this.setFieldValByName("updateName", "占位符", metaObject);
            this.setFieldValByName("updateTime", new Date(), metaObject);
        }
    
        /**
         * 配置druid监控服务器
         *
         * @return 返回监控注册的servlet对象
         */
        @Bean
        public ServletRegistrationBean<Servlet> statViewServlet() {
            ServletRegistrationBean<Servlet> servletRegistrationBean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
            // 添加IP白名单,如果不需要黑名单、白名单的功能,注释掉即可
            servletRegistrationBean.addInitParameter("allow", "192.168.25.125,127.0.0.1");
            // 添加IP黑名单,当白名单和黑名单重复时,黑名单优先级更高
            servletRegistrationBean.addInitParameter("deny", "192.168.25.123");
            // 添加控制台管理用户
            servletRegistrationBean.addInitParameter("loginUsername", "druid");
            servletRegistrationBean.addInitParameter("loginPassword", "123456");
            // 是否能够重置数据
            servletRegistrationBean.addInitParameter("resetEnable", "false");
            return servletRegistrationBean;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69

    其中,createId、createName暂时使用占位符,后期结合登录后从JWT里面获取。

    配置自动生成代码插件

    👉首先创建BaseEntity.java,所有的实体类都继承该对象,用于存放系统字段,代码如下👇

    package com.maple.demo.config.bean;
    
    import com.baomidou.mybatisplus.annotation.FieldFill;
    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableField;
    import com.baomidou.mybatisplus.annotation.TableId;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    import java.io.Serializable;
    import java.util.Date;
    
    /**
     * @author 笑小枫
     * @date 2022/7/11
     */
    @Data
    public class BaseEntity implements Serializable {
    
        @TableId(type = IdType.AUTO)
        protected Long id;
    
        @ApiModelProperty("创建人id")
        @TableField(value = "create_id", fill = FieldFill.INSERT)
        private Long createId;
    
        @ApiModelProperty("创建人名称")
        @TableField(value = "create_name", fill = FieldFill.INSERT)
        private String createName;
    
        @ApiModelProperty("创建时间")
        @TableField(value = "create_time", fill = FieldFill.INSERT)
        private Date createTime;
    
        @ApiModelProperty("更新人id")
        @TableField(value = "update_id", fill = FieldFill.INSERT_UPDATE)
        private Long updateId;
    
        @ApiModelProperty("更新人名称")
        @TableField(value = "update_name", fill = FieldFill.INSERT_UPDATE)
        private String updateName;
    
        @ApiModelProperty("更新时间")
        @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
        private Date updateTime;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    👉配置MyBatis-Plus代码生成工具,在com.maple.demo目录下创建util目录,用于存放工具类。

    然后创建Generator.java,代码如下:👇

    package com.maple.demo.util;
    
    import com.baomidou.mybatisplus.generator.FastAutoGenerator;
    import com.maple.demo.config.bean.BaseEntity;
    
    /**
     * MyBatis-Plus代码生成工具
     *
     * @author 笑小枫
     * @date 2019/4/25
     */
    public class Generator {
    
        public static void main(String[] args) {
    
            // 设置作者
            String auth = "笑小枫";
            // 设置父包名
            String packageName = "com.maple.demo";
            // 设置父包模块名
            String moduleName = "";
            // 指定输出目录
            String path = "D:";
            String url = "jdbc:mysql://127.0.0.1:3306/maple?useUnicode=true&useSSL=false&characterEncoding=utf8";
            String username = "root";
            String password = "*****";
            // 设置需要生成的表名
            String table = "usc_user";
            // 设置过滤表前缀
            String[] tablePrefix = {"usc_", "sys_"};
            generateTest(auth, packageName, path, moduleName, url, username, password, table, tablePrefix);
        }
    
        private static void generateTest(String auth, String packageName, String path, String moduleName,
                                         String url, String username, String password, String table, String[] tablePrefix) {
            FastAutoGenerator.create(url, username, password)
                    .globalConfig(builder -> builder.author(auth)
                            // 开启 swagger 模式
                            .enableSwagger()
                            .outputDir(path))
                    .packageConfig(builder -> builder.parent(packageName)
                                    .moduleName(moduleName)
                            // 设置mapperXml生成路径
                            //.pathInfo(Collections.singletonMap(OutputFile.xml, path))
                    )
                    .strategyConfig(builder -> builder.addInclude(table)
                            .addTablePrefix(tablePrefix)
                            .entityBuilder().superClass(BaseEntity.class).enableLombok().logicDeleteColumnName("delete_flag")
                            .controllerBuilder().enableRestStyle()
                    )
                    .execute();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    注意:适用版本:mybatis-plus-generator 3.5.1 及其以上版本,对历史版本不兼容!3.5.1 以下的请参考代码生成器旧

    • superClass(BaseEntity.class):entity使用父类BaseEntity.class,减少id、创建人、修改人等系统字段

    • .enableSwagger():我们配置了knife4j,所以我们开启swagger模式,这样会自动生成一些swagger的注解

    • logicDeleteColumnName(“delete_flag”):开启逻辑删除

    • enableLombok():项目使用lombok,减少getter/setter代码的编写,使用插件编译时自动生成

    • controllerBuilder().enableRestStyle():controller使用Rest代码风格

    👉然后我们执行该Main方法

    image-20220711163747350

    然后会在配置的目录下生成com文件夹,本文的在D:盘下。

    我们将代码复制到我们的项目中,此时的项目代码结构如下如:👇
    image-20220711205818035

    3.3 功能测试👌

    编写一个测试用例测试一下吧

    在UserController.java文件中添加新增用户和根据ID查询用户信息的接口👇

    package com.maple.demo.controller;
    
    import com.maple.demo.entity.User;
    import com.maple.demo.service.IUserService;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import lombok.AllArgsConstructor;
    import org.springframework.web.bind.annotation.*;
    
    /**
     * 

    * 用户中心-用户信息表 前端控制器 *

    * * @author 笑小枫 * @since 2022-07-11 */
    @RestController @RequestMapping("/user") @AllArgsConstructor @Api(tags = "用户信息管理") public class UserController { private final IUserService userService; @ApiOperation(value = "插入用户信息") @PostMapping("/insert") public User insert(@RequestBody User user){ userService.save(user); return user; } @ApiOperation(value = "根据用户ID查询用户信息") @GetMapping("/selectById") public User selectById(Long userId){ return userService.getById(userId); } }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    这是我们在打开我们的Knife4j,可以在Swagger Models里面看到我们添加的User对象👇

    image-20220711214628173

    在用户信息管理里面可以看到我们的接口信息,我们先调用一下插入方法。

    参数我们只保留简单的几个,如下👇

    {
      "account": "xiaoxiaofeng",
      "email": "1150640979@qq.com",
      "nickName": "笑小枫",
      "password": "123456",
      "phone": "18300000000",
      "userName": "笑小枫"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    调用结果如下图所示👇

    image-20220711214940096

    可以看到数据里面,我们的数据已经插入进去了👇

    image-20220711220037702

    接下来我们调用查询接口看一下👇

    image-20220711220216123

    OK,大功告成✌️

    我们在上文中配置阿里巴巴的Druid数据库连接池,那么我们怎么可以看一下我们的sql执行情况呢?

    可以在浏览器输入:http://127.0.0.1:6666/druid

    在SQL监控中可以看到我们的sql执行情况,以及一些慢sql的分析👇

    image-20220711221854172

    小结

    好啦,本文就到这里了,我们简单的总结一下,主要介绍了以下内容

    • SpringBoot集成mysql数据库
    • 集成Mybatis Plus框架
    • 通过一个简单的例子演示了一下使用Mybatis Plus进行数据插入和查询
    • 使用Knife4j进行接口调试
    • 集成阿里巴巴Druid数据连接池
    • 通过Druid页面进行执行sql查询、分析

    关于笑小枫💕

    本章到这里结束了,喜欢的朋友关注一下我呦,大伙的支持,就是我坚持写下去的动力。
    后续文章会陆续更新,文档会同步在微信公众号、个人博客、CSDN和GitHub保持同步更新。
    微信公众号:笑小枫
    笑小枫个人博客:https://www.xiaoxiaofeng.com
    CSDN:https://zhangfz.blog.csdn.net
    GitHub文档:https://github.com/hack-feng/maple-demo

    本系列其它文章

    本系列的源码已同步在Github:https://github.com/hack-feng/maple-demo

    1. SpringBoot项目创建

    2. SpringBoot配置基于swagger2的knife4j接口文档

    3. SpringBoot集成Mybatis Plus

    4. SpringBoot返回统一结果包装

    5. SpringBoot返回统一异常处理

    6. SpringBoot日志打印Logback详解

    7. SpringBoot控制台自定义banner

    8. SpringBoot集成Redis

    9. SpringBoot用户登录拦截器

    10. SpringBoot处理请求跨域问题

    11. SpringBoot接口日志信息统一记录

    12. SpringBoot导入Excel

    13. SpringBoot导出Excel

    14. SpringBoot发送邮件

    15. SpringBoot根据模板生成Word

    16. SpringBoot生成PDF

    17. SpringBoot文件上传下载

    18. SpringBoot中的Properties配置

  • 相关阅读:
    .NET使用CsvHelper快速读取和写入CSV文件
    在ubuntu上搭建nexus私有仓库[失败草稿]
    前端美化库(持续更新)
    门罗币隐私保护之隐形地址
    FLINK 基于1.15.2的Java开发-使用AggregateFunction解决以天为单位诸如PV、UV等统计的实时计算
    基于 Rainbond 部署 DolphinScheduler 高可用集群
    Qframework 中超级方便的kitres
    减轻关键基础设施网络安全风险的 3 种方法
    小节8:Python之文件操作
    java计算机毕业设计网络城市交通应急管理系统MyBatis+系统+LW文档+源码+调试部署
  • 原文地址:https://blog.csdn.net/qq_34988304/article/details/126474770