SpringBoot学习系列之MyBatis Plus整合封装的实例详解

 更新时间:2020年08月26日 09:19:29   作者:huanzi-qch  
MyBatis-Plus是一款MyBatis的增强工具(简称MP),为简化开发、提高效率,这篇文章给大家介绍MyBatis Plus整合封装的实例详解,感兴趣的朋友跟随小编一起看看吧

前言

  MyBatis-Plus是一款MyBatis的增强工具(简称MP),为简化开发、提高效率,但我们并没有直接使用MP的CRUD接口,而是在原来的基础上封装一层通用代码,单表继承我们的通用代码,实现了单表的基础get、save(插入/更新)、list、page、delete接口,使用Vo去接收、传输数据,实体负责与数据库表映射。

  这样做的目的是与我们之前的那套jpa保持编码风格上的一致,当我们的通用接口不能满足要求时,应当先考虑使用MP的Service层CRUD接口,然后是Mapper的接口,最后才是自定义查询,本文将记录实现过程

  MyBatis-Plus官网:https://baomidou.com/

  创建项目

  在我们的工程里新建子工程springboot-mybatis-plus,pom继承父工程,引入Mybatis-Plus相关jar包

<!--添加MyBatis-Plus依赖 -->
 <dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plus-boot-starter</artifactId>
 <version>3.4.0</version>
 </dependency>

 <!--添加代码生成器依赖 -->
 <dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plus-generator</artifactId>
 <version>3.4.0</version>
 </dependency>
 <!-- 模板引擎 -->
 <dependency>
 <groupId>org.apache.velocity</groupId>
 <artifactId>velocity-engine-core</artifactId>
 <version>2.0</version>
 </dependency>

  启动类中配置mapper扫描路径

@SpringBootApplication
@MapperScan("cn.huanzi.qch.springbootmybatisplus.*.mapper")
public class SpringbootMybatisPlusApplication {

 public static void main(String[] args) {
 SpringApplication.run(SpringbootMybatisPlusApplication.class, args);
 }

}

  创建MybatisPlusConfig配置类

/**
 * MybatisPlusConfig配置类
 */
@Configuration
@ConditionalOnClass(value = {PaginationInterceptor.class})
public class MybatisPlusConfig {

 /**
 * 分页插件相关
 */
 @Bean
 public PaginationInterceptor paginationInterceptor() {
 PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
 return paginationInterceptor;
 }

 /**
 * 主键策略相关
 */
 @Bean
 public IKeyGenerator keyGenerator() {
 return new H2KeyGenerator();
 }
}

  配置文件配置数据库连接,与项目信息

server.port=10102
spring.application.name=springboot-mybatis-plus

#修改thymeleaf访问根路径
spring.thymeleaf.prefix=classpath:/view/

  yml

spring:
 datasource: #数据库相关
 url: jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&characterEncoding=utf-8
 username: root
 password: 123456
 driver-class-name: com.mysql.cj.jdbc.Driver
 mvc:
 date-format: yyyy-MM-dd HH:mm:ss #mvc接收参数时对日期进行格式化

 jackson:
 date-format: yyyy-MM-dd HH:mm:ss #jackson对响应回去的日期参数进行格式化
 time-zone: GMT+8

  到这里项目简单搭建完成

  通用代码

  接下来就是通用代码的编写,我们参考之前jpa的代码,结合Mybatis-Plus的Mapper接口进行封装通用get、save(插入/更新)、list、page、delete接口

  代码布局与jpa的风格一致

  接口也一样

  代码生成器

  MP原生的并不适合我们,我们要新建自定义模板,编写代码生成器

  运行代码生成器即可生成后端代码,代码风格与我们之前的jpa高度一致,同样是封装一套通用CRUD、page分页接口,单表继承实现快速开发

  接口效果演示

  get接口:http://localhost:10102/tbUser/get/2

list接口:http://localhost:10102/tbUser/list、http://localhost:10102/tbUser/list?id=2

page接口分页、排序:http://localhost:10102/tbUser/page?page=1&rows=3&sidx=id&sord=desc

save有id,更新:http://localhost:10102/tbUser/save?id=2&username=huanzixxxx

save无id,新增:http://localhost:10102/tbUser/save?username=huanziyyy&password=000000&created=2020-08-16%2019:56:04

  delete删除:http://localhost:10102/tbUser/delete/14

  后记

  至此,我们便拥有了两个编码风格高度统一的ORM框架的自定义封装,都有一套基础通用的代码、代码自动生成工具,我们的开发效率大大提高,不管后续项目需要用到那个ORM框架,我们都有了技术储备,实现快速开发!MyBatis相关可看回我们之前的系列博客:SpringBoot系列——MyBatis整合

  MP:SpringBoot系列——MyBatis-Plus整合封装

  JPA:SpringBoot整合spring-data-jpa的方法

  代码开源

  代码已经开源、托管到我的GitHub、码云:

  GitHub:https://github.com/huanzi-qch/springBoot

  码云:https://gitee.com/huanzi-qch/springBoot

到此这篇关于MyBatis Plus整合封装的实例详解的文章就介绍到这了,更多相关MyBatis Plus整合封装内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot Controller中的常用注解

    SpringBoot Controller中的常用注解

    这篇文章主要介绍了SpringBoot Controller中的常用注解,文章围绕主题展开详细的内容介绍,具有有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Springboot集成阿里云OSS上传文件系统教程

    Springboot集成阿里云OSS上传文件系统教程

    这篇文章主要介绍了Springboot集成阿里云OSS上传文件系统教程,通过详细的图文展示,代码步骤的展示和文件配置信息,希望对你有所帮助
    2021-06-06
  • Lombok的详细使用及优缺点总结

    Lombok的详细使用及优缺点总结

    最近在学Mybatis,接触到了Lombok的使用,所以写一篇文章记录一下,包括lombok的安装及使用优缺点,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • springmvc HttpServletRequest 如何获取c:forEach的值

    springmvc HttpServletRequest 如何获取c:forEach的值

    这篇文章主要介绍了springmvc HttpServletRequest 如何获取c:forEach的值方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • IDEA 项目创建Mapper的xml文件的方法

    IDEA 项目创建Mapper的xml文件的方法

    这篇文章主要介绍了IDEA 项目创建Mapper的xml文件的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • java实现转圈打印矩阵算法

    java实现转圈打印矩阵算法

    这篇文章主要为大家详细介绍了java实现转圈打印矩阵算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • SpringData JPA的常用语法汇总

    SpringData JPA的常用语法汇总

    Spring Data JPA是Spring基于ORM框架、JPA规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据的访问和操作,下面这篇文章主要给大家介绍了关于SpringData JPA的常用语法,需要的朋友可以参考下
    2022-06-06
  • Java利用Redis实现高并发计数器的示例代码

    Java利用Redis实现高并发计数器的示例代码

    这篇文章主要介绍了Java利用Redis实现高并发计数器的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Java访问控制符原理及具体用法解析

    Java访问控制符原理及具体用法解析

    这篇文章主要介绍了Java访问控制符原理及具体用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 三分钟带你了解SpringBoot真正的启动引导类

    三分钟带你了解SpringBoot真正的启动引导类

    这篇文章主要介绍了三分钟带你了解SpringBoot真正的启动引导类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论