MybatisPlus:为简化代码而生

是什么?

        是一个Mybatis的增强工具,在Mybatis的基础之上只做增强,不做改变!

为什么?

        我们在使用传统的Mybatis进行mapper文件的配置的时候会发现当我们的数据表量十分庞大的时候,就需要配置大量的mapper.xml文件,但实际上这里面的大部分sql语句都是相同的,不同的只是字段而已,因此我们完全可以把这些重复代码抽取出来,MybatisPlus就帮我们做到了这一点。

特点:

        无侵入:只做增强不做改变,引入它不会对现有的工程有任何的影响,十分丝滑。

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

        强大的CRUD操作:内嵌通用Mapper、通用Service,仅仅通过少量配置就能实现大部分的CRUD操作。

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

        强大的条件构造器:配合Lambda表达式拼接查询条件,避免了sql语句的大量编写。

        支持主键自动生成:支持四种主键生成策略,可以自由配置,完美解决主键问题。

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

        支持自定义全局操作:支持全局通用方法注入。

        内嵌代码生成器

        内置分页插件

        分页插件支持多种数据库

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

        内嵌全局拦截插件

缺点:

       1. 既然CRUD都是MybatisPlus帮我们写的,那么我们想控制起来就特别的麻烦

        2.MybatisPlus不支持连表查询,如果要进行联表查询还是需要配置mapper.xml文件编写sql语句;

MyBatisPlus是怎么做的?

        1.首先扫描我们的实体类;

        2.扫描完成之后,通过反射提取表名和列名;(如果贴的有注解,则使用注解后的名字)

        3.再基于表名和列名帮我们生成CURD的sql语句;

        4.把这些sql语句注入到Mybatis容器中;

        5.MybatisPlus程序启动的时候,会扫描所有继承了BaseMapper的Mapper接口,并创建代理对象,代理对象中实现了基础的CRUD功能,在BaseMapper中定义了通用的CRUD的方法;

MybatisPlus常用注解

1.@TableName(表名-》贴在实体类上):手动指定表名让MybatisPlus扫描而不是直接使用实体类名;

2.@TableField(列名-》贴在字段上):手动指定列名让MybatisPlus扫描,而不是直接使用属性名;

3.@TableId(type=IdType.Auto):MybatisPlus在进行新增操作的时候,id默认新增模式是使用雪花算法+UUID来随机生成的,使用该注解来手动选择ID的生成方式

4.@TableField(exist=false)贴在字段上:来告诉MybatisPlus不用扫描该列!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Strine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值