MybatisPlus中QueryWrapper用法详解
发布网友
发布时间:2024-08-20 06:48
我来回答
共1个回答
热心网友
时间:2024-08-25 03:58
1、MybatisPlus
MyBatisPlus 是在 MyBatis 基础上增强的工具,扩展了多种功能,保持原有功能不变,旨在简化开发流程,提升开发效率。
MyBatisPlus 依赖:mybatis-plus-boot-starter(版本稳定)
2、wrapper介绍
LambdaQueryWrapper和QueryWrapper查询功能相同,但LambdaQueryWrapper使用Lambda语法,使用起来更方便,更易于理解。
(1)、Mapper方法
Mapper方法继承BaseMapper,BaseMapper 接口中封装了一系列 CRUD 常用操作,可以直接使用。
(2)、Service方法
Service方法继承IService接口,IService中封装了BaseMapper 接口,可以直接使用一系列 CRUD 常用操作。
(3)、Impl方法实现类
Impl继承ServiceImpl,实现Service接口,其中对应的Mapper和对应的实体类。
3、QueryWrapper函数方法
QueryWrapper方法常用方法,以及简单使用方式
LambdaQueryWrapper方法常用方法,以及简单使用方式,和QueryWrapper类型,如下:
4、UpdateWrapper函数更新方法
(1)、UpdateWrapper更新方法
更新的字段使用set,条件字段使用查询语句中的方法
更新语句:将name=张三的年龄设置成12
(2)、使用QueryWrapper更新方法
实体类使用set方法进行设值,该实体类中id必须要有值,id是指实体类中主键,然后使用updateById进行更新该条数据。
(3)、使用LambdaUpdateWrapper
这和第一种方式类似,只是使用Lambda语法
(4)、批量保存方法
也就是内部封装的saveBatch方法,存在一些问题,使用的时候需要多加注意
(1)、数据库问题
部分数据库不支持使用saveBatch方法,例如SQLService,像MySQL、Oracle等数据库就可以安心使用了,这是一个需要注意的地方
(2)、saveBatch方法问题
saveBatch源码实现是每实现插入一批数据发给数据库,再插入一批进行相同的操作,直到完成,这样导致效率很低,这个也需要注意的地方。
解决方法:在MySQL数据库url加上一个属性就可以解决这个问题,但是每个数据库的情况不相同,所对应的解决方法也是不同的。如下示例:
今日简单一更,溜了!skr~