MyBatis-Plus详解

发布时间 2023-09-05 21:44:16作者: hwj7

MyBatis-Plus是一个功能强大、易于使用的MyBatis增强工具,MyBatis的基础上只做增强不做改变,它提供了许多实用的功能和扩展,可以极大地简化和提高开发效率。

特性

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

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

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

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

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

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

支持自定义全局通用操作:支持全局通用方法注入(Writeonce,useanywhere)

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

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

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

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

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

 

功能:

l CRUD操作的简化:MyBatis-Plus提供了一组简化的方法,使得执行常见的CRUD操作更加简单和便捷。例如,通过继承BaseMapper接口,您可以直接使用一些常用的方法,如insert、update、delete和select等,而无需手动编写SQL语句。

条件构造器:MyBatis-Plus提供了一种灵活的条件构造器,可以通过链式调用的方式构建复杂的查询条件。您可以使用它来构建动态查询,避免手动拼接SQL语句,提高代码的可读性和维护性。

分页查询:MyBatis-Plus提供了方便的分页查询功能,您可以通过简单的方法调用实现分页查询,并且支持多种数据库的分页查询方式。

逻辑删除:MyBatis-Plus支持逻辑删除功能,您可以通过在实体类中添加注解来标记逻辑删除字段,并且在查询时自动过滤已被逻辑删除的数据。

自动填充:MyBatis-Plus提供了自动填充功能,可以在插入或更新操作时自动填充指定的字段,例如创建时间、更新时间等。您可以通过实现MyMetaObjectHandler接口来自定义字段的填充逻辑。

乐观锁:MyBatis-Plus支持乐观锁功能,可以通过在实体类中添加注解来启用乐观锁,并在更新操作时自动判断版本号,避免并发更新冲突。

主键策略:MyBatis-Plus提供了多种主键策略,可以自动生成主键值。您可以选择使用数据库自增、雪花算法、UUID等主键策略。

动态表名:MyBatis-Plus支持动态表名功能,可以根据运行时的条件动态选择要操作的表名。

l SQL注入防护:MyBatis-Plus内置了SQL注入防护功能,可以在执行SQL语句时对参数进行安全检查,避免SQL注入攻击。

多租户支持:MyBatis-Plus提供了多租户支持,可以根据不同的租户ID自动过滤数据,实现数据隔离。