简介MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不 做改变,为简化开发、提高效率而生
MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍 。
文章插图
小编整理出来一份MP134页的详情介绍pdf文档,点赞+关注私信小编“资料”免费获取;下面给大家展示部分内容 。
看图 ↓
文章插图
特性、优点
- 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
- 损耗小:启动即会自动注入基本 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 操作智能分析阻断,也可自定义拦截规则,预防误操作
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发 效率 。
演示效果图:
文章插图
二、强大的CRUD接口
Mapper CRUD 接口
- 通用 CRUD 封装BaseMapper 接口,为 Mybatis-Plus 启动时自动解析实体表关系映射转 换为 Mybatis 内部对象注入容器
- 泛型 T 为任意实体对象
- 参数 Serializable 为任意类型主键 Mybatis-Plus 不推荐使用复合主键约定每一张表都 有自己的唯一 id 主键
- 对象 Wrapper 为 条件构造器
文章插图
Service CRUD 接口
- 通用 Service CRUD 封装IService 接口,进一步封装 CRUD 采用 get 查询单行 remove 删除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆
- 泛型 T 为任意实体对象
- 建议如果存在自定义通用 Service 方法的可能,请创建自己的 IBaseService 继承 Mybatis-Plus 提供的基类
- 对象 Wrapper 为 条件构造器
文章插图
文章插图
条件构造器
- 以下出现的第一个入参 boolean condition 表示该条件是否加入最后生成的sql中
- 以下代码块内的多个方法均为从上往下补全个别 boolean 类型的入参,默认为 true
- 以下出现的泛型 Param 均为 Wrapper 的子类实例(均具有 AbstractWrapper 的所有方法)
- 以下方法在入参中出现的 R 为泛型,在普通wrapper中是 String ,在LambdaWrapper中是函 数(例: Entity::getId , Entity 为实体类, getId 为字段 id 的getMethod)
- 以下方法入参中的 R column 均表示数据库字段,当 R 具体类型为 String 时则为数据库字段 名(字段名是数据库关键字的自己用转义符包裹!)!而不是实体类数据字段名!!!,另当 R 具体类 型为 SFunction 该项目runtime不支持eclipse自家的编译器!!!
- 以下举例均为使用普通wrapper,入参为 Map 和 List 的均以 json 形式表现!
- 使用中如果入参的 Map 或者 List 为空,则不会加入最后生成的sql中!!!
推荐阅读
- 一个不起眼的功能,可以一键合并拆分单元格
- 拉菲草什么梗?
- 生意参谋多少钱一个月 小卖家需要生意参谋吗
- 红茶之国是哪一个?[红茶]
- 中国人不骗中国人是什么梗?
- 交换机的工作原理
- 你真的需要一个WiFi 6路由器吗?
- 在淘宝网开店一个身份证可以注册几家店铺 开网店为什么需要很多身份证
- 生意参谋页面很多我想最快了解某一个指标 生意参谋商城点击占比在哪里
- 淘宝店名在哪里改 淘宝商铺名称怎么改