欢迎光临散文网 会员登陆 & 注册

Spring Boot整合MyBatis-Plus框架快速上手

2023-11-01 15:44 作者:袁庭新  | 我要投稿

最开始,我们要在Java中使用数据库时,需要使用JDBC,创建Connection、ResultSet等,然后我们又对JDBC的操作进行了封装,创建了许多类似于DBUtil等工具类。再慢慢的,出现了一系列持久层的框架:Hibernate、JPA和MyBatis等。

其实利用MyBatis 来进行持久层的开发已经大大减少了工作人员的工作量了,但它的使用还是需要一定的门槛的。Mybatis-Plus的出现,进一步降低了这道槛。那我们今天就来看看,Mybatis-Plus到底是如何进一步实现MyBatis的增强的。

1.MyBatis-Plus简介

MyBatis-Plus官网地址:

MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。MP的愿景是成为MyBatis最好的搭档,就像魂斗罗中的1P、2P,基友搭配,效率翻倍。

1.1 MyBatis-Plus特性

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。

  • 损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作。

  • 强大的CRUD操作:内置通用Mapper、通用Service,仅仅通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类使用需求。

  • 支持Lambda形式调用:通过Lambda表达式,方便的编写各类查询条件,无需再担心字段写错。

  • 支持主键自动生成:支持多达4种主键策略(内含分布式唯一ID生成器--Sequence),可自由配置,完美解决主键问题。

  • 支持ActiveRecord模式:支持ActiveRecord形式调用,实体类只需继承Model类即可进行强大的CRUD操作。

  • 支持自定义全局通用操作:支持全局通用方法注入(Write once, use anywhere)。

  • 内置代码生成器:采用代码或者Maven插件可快速生成Mapper、Model、Service、Controller层代码,支持模板引擎,更有超多自定义配置等您来使用。

  • 内置分页插件:基于MyBatis物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List查询。

  • 分页插件支持多种数据库:支持MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer等多种数据库。

  • 内置性能分析插件:可输出SQL语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询。

  • 内置全局拦截插件:提供全表delete、update操作智能分析阻断,也可自定义拦截规则,预防误操作。

1.2 支持数据库

任何能使用MyBatis进行CRUD,并且支持标准SQL的数据库,具体支持情况如下:

  • MySQL,Oracle,DB2,H2,HSQL,SQLite,PostgreSQL,SQLServer,Phoenix,Gauss ,ClickHouse,Sybase,OceanBase,Firebird,Cubrid,Goldilocks,csiidb。

  • 达梦数据库,虚谷数据库,人大金仓数据库,南大通用(华库)数据库,南大通用数据库,神通数据库,瀚高数据库。

2.使用SpringBoot整合MyBatis-Plus

2.1 MyBatis-Plus部署配置

1.引入依赖。在pom.xml文件中添加Mybatis-Plus依赖。

2.编写实体类。在springbootdata数据库中创建products商品信息表并插入数据。

3.在com.cy.domain包下创建Product实体类。

4.定义Mapper。在com.cy.mapper包下创建ProductMapper接口并继承BaseMapper接口。

MyBatis-Plus的Mapper层接口需要配置扫描,配置方式有两种:

  1. 直接在Mapper层使用@Mapper注解修饰Mapper接口。

  2. 在项目的启动类上添加@MapperScan("com.cy.mapper")包扫描。

5.配置properties。在application.properties配置文件中将原有的MyBatis配置删除,改写为MyBatis-Plus的配置。

说明:MyBatis-Plus默认开启了驼峰命名匹配映射。

2.2 MyBatis-Plus增删改查操作

1.新增数据操作。在com.cy测试包下编写MyBatisPlusTests测试类,并添加插入数据操作的测试方法。

2.删除数据操作。

3.修改数据操。

2.3 查询数据操作

1.条件查询。根据指定的限定条件进行数据查询操作。

2.分页查询。进行单表的条件查询并实现分页。第一步先配置分页插件。Mybatis-Plus框架是通过拦截器实现分页的。

3.第二步在MyBatisPlusTests类中添加单表条件分页查询的测试方法。

3.MyBatis-Plus复杂查询

3.1 添加查询

MetaObjectHandler接口是Mybatis-Plus为我们提供的的一个扩展接口,我们可以利用这个接口在我们插入或者更新数据的时候,为一些字段指定默认值。

在实体类中添加@TableField注解。

  • FieldFill.INSERT:表示只是插入时生效。

  • FieldFill.INSERT_UPDATE:表示插入和更新时生效。

在项目的com.cy.config包下创建MyMetaObjectHandler类实现MetaObjectHandler接口,并添加@Component注解。

然后在MyBatisPlusTests测试类中添加测试方法。

3.2 自定义查询

通过LambdaUpdateChainWrapper类和LambdaQueryChainWrapper类(Lambda更新链包装器和Lambda查询链包装器)实现自定义条件查询。

现在你知道在SpringBoot中怎么整合Mybatis-Plus了吗?如果你还有其他问题,可以在评论区留言哦。关注「袁庭新」公众号,干货天天都不断。


Spring Boot整合MyBatis-Plus框架快速上手的评论 (共 条)

分享到微博请遵守国家法律