Mybatis-Plus(巩固笔记)

执行流程:

(1)Mapper类实现接口BaseMapper<T>

注意:当Mybatis-plus提供的方法不注意让我们去进行查询的时候,我们可以按照以前的mybatis的方式去进行sql语句!

(2)Service接口类继承Iservice<T>

(3)Service实现类继承ServiceImpl<TMapper,T>,实现Service接口。

Mybatis-plus提供的方法:

Mapper层:

Service层:

我们从这些方法里面看到了一个行的类就是Wrapper<T>,以及Page。

Wrapper<T>——条件构造器:

Wrapper<T>也就是我们说的条件构造器。他是一个接口,主要就是用来标识sql语句后面的“where 条件语句”,而他的实现类:

QueryWrapper<T>:

LambdaQueryWrapper<T>:

 方法:

常用的方法有这些:

还有其他条件,引用一下别人大佬写好的文章,请看这里:

MyBatis-Plus 条件构造器常用方法使用(相等判断、范围判断、模糊匹配、非空判断、in判断、分组、排序、条件判断、逻辑判断、存在判断、查询字段)_lambdaquerywrapper 非空判断_旭东怪的博客-优快云博客

Page——封装分页查询结果的类:

如果要使用到分页查询的话,那么对应的我们需要进行分页拦截器的注入,因为不同的数据库对应的分页条件是不同的,mysql的分页是limit,而orcale是rownum!

注意:这里的分页拦截器与mvc里面的拦截器是不同的!分页拦截器是针对sql继续拦截纠正,整个更多的先是一个动态代理的过程。而mvc是基于请求来进行拦截的。!

注入分页拦截器:

这里涉及到三个没有见过的类:

MybatisPlusInterceptor——拦截器,更像是一个集合!主要是记录当前有那些拦截器!

PaginationInnerIntercepctor——分页拦截器!

OptimisticLockerInnerIntercepctor——乐观锁拦截器!{整个后面会给你解释到!}

IPage与Page:

实现方式不同!

page是ipage的实现:我们通俗的去理解就是ipage对page再进行一个封装:

所以我们可以拉出取来数据。

 查询sql语句生成原理:

所以我们可以很清晰的知道mybatis-plus是以及定义的类的类名以及属性名来进行sql语句生成的。

那假设类名与表名不符合,或者属性名与字段名不相同的时候就查询不了了。

所以为了解决这样的问题,mybatis-plus提供了注解来解决:

@TableField(Value="字段名")——解决属性名与字段不相同!

 Exitst=true/false

(在数据库表字段里面是否存在,就是之后的操作是否需要加入。)

select=true/false

查询的时候是否带上该字段

fill=FieldFill.sql语句类型(公共字段执行):

也就是当mybatis在执行update或者Insert的时候,会自动把数据翻入到对应的属性里面去!

而究竟如何添加咧?通过创建一个实现类,去实现 MetaObjectHandler 接口。

但是!!!如果不是使用mybatis-plus提供的api来执行sql语句的话!是不会加入进去的! 

 @TableName(Value="字段名")——解决类名与表名不相同!

 @TableID(Type=类型)——这个是针对生成数据,也就是添加数据的时候,id自动生成。

 重点来了:就是我们可以通过配置文件去定义全局策略

@TableLogic——逻辑删除,也就是如果执行了删除标志,并不会是去删除掉这个数据,而是在这个字段里面添加一个数值!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值