MybatisPlus学习,记录下学习内容

1.yml配置

在这里插入图片描述

2.启动类加上@MapperScan注解

在这里插入图片描述

3.封装类

在这里插入图片描述

3.1注解说明

@TableName注解用于表名与包装类名匹配
@TableId注解用于指明主键,主键可以选择属性,比如自增
@TableField用于指明属性与表字段匹配,当字段名与属性名相同时可以不写

4.Mapper接口须继承BaseMapper接口

在这里插入图片描述

5.测试方法

5.1 selectList方法

在这里插入图片描述
传入参数null是为了查询所有结果,查询结果如下:
在这里插入图片描述

5.2 insert方法

在这里插入图片描述
运行结果:
在这里插入图片描述

6.排除非表字段的三种方式

6.1 用关键字transient标识

在这里插入图片描述
用transient关键字标识的属性不参与序列化过程,mp会忽略掉该属性,但是该属性也不能被序列化了.

6.2 用关键字static标识

在这里插入图片描述
用static标识的变量也会被mp忽略掉,但是lombok不会为静态属性生成set/get方法,需要自己手动生成.

6.3 加入@TableField注解

在这里插入图片描述
该注解默认是true,改成false标识该属性在表中不存在

7.查询

7.1 普通查询

7.1.1 传递单一参数查询

在这里插入图片描述
查询结果:
在这里插入图片描述

7.1.2 传递Collection集合查询

在这里插入图片描述
结果为:
在这里插入图片描述
通过结果可以看出是通过in查询的

7.1.3 传递Map集合查询

在这里插入图片描述
结果为:
在这里插入图片描述
中间是使用and连接
值得注意的是:map加的键是表字段,不是包装类属性

传递Collection集合与Map集合的区别:
Collection 是按照同一字段的不同参数查询
Map 是按照不同字段查询表信息

7.2 条件构造器查询

7.2.1 模糊查询与eq

在这里插入图片描述
运行结果为:
在这里插入图片描述
连接符号也是and

7.2.2 between和isNotNull

在这里插入图片描述
查询结果为:
在这里插入图片描述
全部都是and连接

7.2.3 逻辑运算符和倒序查询

在这里插入图片描述
结果为:
在这里插入图片描述

7.2.4 sql拼接和in

在这里插入图片描述
结果为:
在这里插入图片描述

7.2.5 AND 嵌套

在这里插入图片描述

7.2.6 OR嵌套

在这里插入图片描述
执行后的sql:
在这里插入图片描述

7.2.7 正常嵌套nested

在这里插入图片描述
执行后sql:
在这里插入图片描述

7.2.8 in

在这里插入图片描述
执行后sql:
在这里插入图片描述

7.2.9 list

list无视优化规则直接拼接到 sql 的最后,有sql注入风险
list无视规则优化,强制加在最后
执行后sql:
在这里插入图片描述

7.2.10 select

在这里插入图片描述
使用select查询指定字段:
执行结果sql为:
在这里插入图片描述

使用select(Class entityClass, Predicate predicate)
剔除不需要的字段
在这里插入图片描述
运行后sql为:
在这里插入图片描述

7.3 条件构造器中condition用法

源码为:
在这里插入图片描述
condition为false,则表示该字段不加入where条件
在这里插入图片描述
sql执行结果:
在这里插入图片描述

7.4 创建条件构造器时,传入实体参数

实体参数和条件构造器互不冲突,都会被加在where后面
在这里插入图片描述
执行结果:
在这里插入图片描述

7.4.1 关于实体参数

注意事项:
实体条件查找默认时等值.但是可以在实体类加入@TableFiled注解改变查询条件
在这里插入图片描述
在这里插入图片描述
SqlCondition 提供的查询条件有限,仅仅五个
在这里插入图片描述
但是可以自己按照他的格式定义,例如:
在这里插入图片描述
表示查询小于指定参数的值:
在这里插入图片描述
sql查询结果为:
在这里插入图片描述

7.5 allEq

以map集合的形式传递参数
在这里插入图片描述
执行结果为:
在这里插入图片描述
该方法还有一个重载方法
在这里插入图片描述
图片来源于官方,第二个方法的null2IsNull为true时,表示当该参数为null时调用is null ,当null2IsNull为false时,则表示当传的参数为null时直接忽略.
null2IsNull为true时:
在这里插入图片描述
null2IsNull为false时:
在这里插入图片描述
allEq还有一种写法:
在这里插入图片描述
可以通过该方法过滤查询条件:
在这里插入图片描述

7.6 selectMaps

根据 Wrapper 条件,查询全部记录

在这里插入图片描述
因为返回值类型不在是实体类了,当实体类属性较多,而所需返回值较少时,可以使用这种方式查询,或者用于特殊查询
在这里插入图片描述

7.7 selectObjs

在这里插入图片描述
这个方法的查询结果只保留第一个字段的值
在这里插入图片描述
比如这个,明明查询了年龄和姓名,却只保留了姓名

7.8 selectOne

在这里插入图片描述
返回值时一个实体对象,但是查询到多个会报错

7.9 selectCount

该方法可用于统计数量
在这里插入图片描述

7.10 lambda条件构造器

lambda条件构造器的普通三种创建方法:
在这里插入图片描述
拿第三种创建方式举例:
在这里插入图片描述
lambda条件构造器的第四种写法
在这里插入图片描述
直接将接口传入,就能直接查询了

8 自定义Sql

需要在Mapper接口先写自己的方法,和mybatis一样的写法,但是参数需要指定的参数,Sql语句使用注解或者xml都行:
在这里插入图片描述
关于 ${ew.customSqlSegment} 的含义:
在这里插入图片描述

9 分页查询

第一步:
配置分页查询配置类
在这里插入图片描述
注:分页查询不成功,很有可能是配置信息的不完成
分页查询代码:
在这里插入图片描述
mp是分两次查询,一次是查询总记录数,一次是查询分页数据,可以通过重载方法,取消查询总记录数
在这里插入图片描述
不查询总记录数:
在这里插入图片描述
selectMapsPage返回的时一个map集合
在这里插入图片描述
也有自定义分页查询,详情见官网

10 更新功能

根据id更新:
在这里插入图片描述
这个方法是基于实体参数修改指定的值,entity是set参数,updateWrapper是where里的参数

int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);

在这里插入图片描述
updateWrapper也可以传入实体参数:
在这里插入图片描述
只改变部分参数,则不必要传入实体对象时,可以用set方法:
在这里插入图片描述

Lambda表达式写法
在这里插入图片描述
链式Lambda表达式写法
在这里插入图片描述

11 删除功能

在这里插入图片描述

deleteBuId
在这里插入图片描述
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
类似,就是传一个集合进去删除
在这里插入图片描述
int delete(@Param(Constants.WRAPPER) Wrapper wrapper);
在这里插入图片描述
这是lambda表达式的,普通构造器类似

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值