SpringBoot集成Mybatis-plus和MybatisX插件

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: SpringBoot集成Mybatis-plus和MybatisX插件

一、说明

安装MybatisX插件和引入mybatis-plus依赖,即可自动生成domain、xml文件、映射接口文件、service层接口,提升了开发效率。

二、准备工作

1、IDEA安装MybatisX插件。

2、POM文件中需要引入mybatis-plus-boot-starter:

<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

3、IDEA中配置数据源DataSource:

测试用SQL语句:

CREATE TABLE `user_info`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `user_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
  `age` int(11) NULL DEFAULT NULL COMMENT '年龄',
  `source` tinyint(4) NULL DEFAULT NULL COMMENT '来源',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `source_id`(`source`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1008 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

4、右键点击MybatisX-Generator生成domain、xml文件、映射接口、service文件:

最后的生成文件示意:

三、配置和编码工作

1、引入mybatis-plus的部分POM文件,生产环境很多会加上数据库连接池提升性能,我们选择druid,可以做数据库连接监控。

<!-- mybatis plus start -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
        <!-- mybatis plus end -->
        <!--数据库连接池 start-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!--数据库连接池 end-->

POM中依赖的版本对应关系

mybatis-plus-boot-starter 3.4.2
mysql-connector-java 8.0.12
druid 1.2.3
spring-boot 2.3.2.RELEASE

2、配置properties文件,主要包括mybatis-plus、springboot、druid的配置。

# app
server.port=9001
# spring
spring.application.name=mybatis-plus-demo
spring.datasource.url=jdbc:mysql://x.x.x.x:x/test_db?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=x
spring.datasource.password=x
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 使用druid做连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource 
# druid 配置
spring.datasource.druid.initialSize=5
spring.datasource.druid.minIdle=5
spring.datasource.druid.maxActive=200
spring.datasource.druid.maxWait=60000
spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
spring.datasource.druid.minEvictableIdleTimeMillis=300000
spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL
spring.datasource.druid.testWhileIdle=true
spring.datasource.druid.testOnBorrow=false
spring.datasource.druid.testOnReturn=false
spring.datasource.druid.poolPreparedStatements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=50
spring.datasource.druid.filters=stat,wall,log4j
spring.datasource.druid.useGlobalDataSourceStat=true
spring.datasource.druid.cconnectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
# 配置监控,用逗号(,)隔开
spring.datasource.druid.aop-patterns=com.yangnk.mybatisSample.mapper.*
# 是否开启 StatView Servlet
spring.datasource.druid.stat-view-servlet.enabled=true
#配置访问网址
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
# 访问监控页面 白名单,默认127.0.0.1
spring.datasource.druid.stat-view-servlet.allow=127.0.0.1
# 访问监控页面 黑名单,黑名单不能访问
#spring.datasource.druid.stat-view-servlet.deny=192.168.100.148
# 访问监控页面 登陆账号
spring.datasource.druid.stat-view-servlet.login-username=admin
# 访问监控页面 登陆密码
spring.datasource.druid.stat-view-servlet.login-password=666666
# 是否可以重置数据源
spring.datasource.druid.stat-view-servlet.reset-enable=true
# mybatis-plus
# XML映射文件的位置
mybatis-plus.mapper-locations=classpath:mapper/*Mapper.xml
# 实体类所在的包
mybatis-plus.type-aliases-package=com.yangnk.mybatisplusdemo.domain
# MyBatis-Plus全局配置
# 数据库大写下划线转换
mybatis-plus.global-config.db-config.capital-mode=true
# 逻辑删除值
mybatis-plus.global-config.logic-delete-value=1
# 逻辑未删除值
mybatis-plus.global-config.logic-not-delete-value=0
# MyBatis-plus配置
# 将数据库字段映射为驼峰命名
mybatis-plus.configuration.map-underscore-to-camel-case=true
# 是否启用缓存
mybatis-plus.configuration.cache-enabled=false
# 默认枚举类型处理器
mybatis-plus.configuration.default-enum-type-handler=org.apache.ibatis.type.EnumOrdinalTypeHandler

请求druid默认地址:http://127.0.0.1:9000/druid/index.html,可以查看数据库连接池使用情况。

四、验证工作

写一个controller测试,请求数据库数据,可以打印出来。

五、代码实现

MybatisPlusDemo:https://github.com/yangnk/SpringBoot_Learning/tree/master/MybatisPlusDemo

六、总结

总的来说集成Mybatis-plus和MybatisX插件了有以下优势,(1)可以节省生成Mybatis的Mapper文件和映射接口文件,根据数据库表就能直接生成;(2)Mybatis-plus实现了常见的增删改查接口,简单SQL操作不再需要自己编写方法了。

参考资料

  1. 三款神器(MyBatis Plus + MyBatisX + MyBatis Plus Join);终于不用写数据库操作代码,一键生成直接调用:https://blog.csdn.net/lupengfei1009/article/details/121689443
  2. fengwenyi/MyBatis-Plus-ExamplePublic:https://github.com/fengwenyi/MyBatis-Plus-Example
  3. SpringBoot2.4.x整合Mybatis-Plus3.4.x(详细教程):https://www.cnblogs.com/kenx/p/14966186.html#编写controller主程序
  4. MyBatis-Plus官网:https://www.baomidou.com/pages/1812u1


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
11月前
|
安全 Java Apache
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 身份和权限认证
本文介绍了 Apache Shiro 的身份认证与权限认证机制。在身份认证部分,分析了 Shiro 的认证流程,包括应用程序调用 `Subject.login(token)` 方法、SecurityManager 接管认证以及通过 Realm 进行具体的安全验证。权限认证部分阐述了权限(permission)、角色(role)和用户(user)三者的关系,其中用户可拥有多个角色,角色则对应不同的权限组合,例如普通用户仅能查看或添加信息,而管理员可执行所有操作。
563 0
|
11月前
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
402 0
|
8月前
|
前端开发
SpringBoot2.3.1集成Knife4j接口文档
SpringBoot2.3.1集成Knife4j接口文档
881 44
|
8月前
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
1371 1
Spring boot 使用mybatis generator 自动生成代码插件
|
7月前
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
441 3
|
7月前
|
缓存 JSON 前端开发
第07课:Spring Boot集成Thymeleaf模板引擎
第07课:Spring Boot集成Thymeleaf模板引擎
670 0
第07课:Spring Boot集成Thymeleaf模板引擎
|
7月前
|
Java 关系型数据库 MySQL
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
742 2
|
7月前
|
分布式计算 Java 大数据
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
410 2
|
9月前
|
Java 数据库连接 微服务
若依微服务的Mybatis-plus集成过程:一份详细的入门教程。
以上就是Spring Boot项目中集成MyBatis Plus的详细步骤。集成成功后,你就可以使用Mybatis-plus提供的强大功能,让你的增删改查操作更为简单。以上步骤简单易懂,非常适合初学者使用。希望对您有所帮助。
919 20