1、简介:Mybatis-plus是mybatis的增强工具,在mybatis的基础上只做增强不做改变,是为了简化开发和提高效率而生。mybatis-plus只作用于单表的增删改查,联表操作还需要mybatis。
2、Mybatis-plus的特性
无侵入:只做增强不做改变,引入它不会对现有工程产生影响.
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
内置强大的增删改查操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
2.3 如何使用
3、Mybatis-plus的使用
第一步在springboot的工程基础上引入mybatis-plus的相关依赖(mybatis-plus-boot-starter)
第二步进行文件配置,配置数据源信息(连接数据库)
第三步创建实体类(不要使用基本数据类型,用Integer Long等)
第四步创建mapper接口,mapper接口继承BaseMapper
第五步在主启动类上加上@MapperScan(basePackages = {"此处为mapper的路径"}),扫描 mapper
第六步测试
![](https://img-blog.csdnimg.cn/20210621212540215.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h6cnhkaA==,size_16,color_FFFFFF,t_70)
4、mybatis-plus的增删改查
增加:Mapper继承的BaseMapper内含有大部分单表 CRUD 操作,因此通过mapper简单的调用 既可以实现CRUD 操作。
Mybatis-plus可以实现主键的自增(数据库表必须也是递增的),
@TableId(type = IdType.AUTO)是递增
@TableId(type = IdType.NONE或者INPUT)是人为输入
@TableId(type = IdType.TASSIGN_ID)是针对int类型的主键,雪花算法针对的分布式id生 成策略
![](https://img-blog.csdnimg.cn/20210621212957108.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h6cnhkaA==,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20210621214252701.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h6cnhkaA==,size_16,color_FFFFFF,t_70)
逻辑删除:只对自动注入的sql起效,
逻辑删除需要在表内添加一个deleted字段,默认1为删除,在实体属性上加入如下注解。通过自动注入的sql删除一项数据后数据库内仍然存在,但sql语句查找不到,删除转变为更新
![](https://img-blog.csdnimg.cn/20210621214746985.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h6cnhkaA==,size_16,color_FFFFFF,t_70)
修改-自动填充
在数据库表内创建添加时间、修改时间的字段,mybatis-plus可以实现自动更新
首先在实体内创建相应的属性,加上对应的注解
![](https://img-blog.csdnimg.cn/20210621215539234.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h6cnhkaA==,size_16,color_FFFFFF,t_70)
需要创建一个配置类,在配置类内配置信息(为哪一个字段做填充,填充的类型,填充的内容等)
![](https://img-blog.csdnimg.cn/20210621215600369.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h6cnhkaA==,size_16,color_FFFFFF,t_70)
查询-条件查询
mybatis-plus可以生成查询条件的包装类Wrapper,在查询方法内内new一个wrapper通过条件的包装类可以实现各种条件的查询(范围、模糊、or、in等等)
![](https://img-blog.csdnimg.cn/20210621220101567.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h6cnhkaA==,size_16,color_FFFFFF,t_70)