mybatisplus
1、selectById 根据主键查询一个对象,如果没有查到,则返回null:
GxySchoolDto isExist = gxySchoolMapper.selectById(schoolEntity.getSchoolId()); 2、selectOne 根据 查询对象 queryWrapper 查询一个 对象, 没有查到则返回 null:
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("is_deleted",0);
queryWrapper.eq("school_code",schoolEntity.getSchoolCode());
GxySchoolDto isByCode = gxySchoolMapper.selectOne(queryWrapper);
@Mapper
public interface GxySchoolMapper extends BaseMapper<GxySchoolDto> {
}
@Data
@TableName("gxy_school")
public class GxySchoolDto extends BaseDto implements Serializable {
private static final long serialVersionUID = 1L; /**
* 唯一主键
*/
@TableId(value = "school_id", type = IdType.UUID)
private String schoolId;
/**
* 学校名称
*/
private String schoolName;
/**
* 学校代码
*/
private String schoolCode;
3. list 查询列表:
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("plan_temp_id",planTemplateEntity.getPlanTemplateId());
queryWrapper.eq("is_deleted",0);
List<GxyPlanTempAppraiseItemDto> planTempAppraiseItemDtos = gxyPlanTempAppraiseItemService.list(queryWrapper); 对应的sql:
SELECT plan_temp_appraise_item_id,is_deleted,create_time,plan_temp_id,appraise_item_id,prop,is_point,item_name,snow_flake_id FROM gxy_plan_temp_appraise_item WHERE plan_temp_id = ? AND is_deleted = ?
Parameters: de42308f1617a837f98ba2507ac58d87(String), 0(Integer) 4. SQL 语句:
SELECT school_id,school_name,is_deleted,school_code FROM gxy_school WHERE is_deleted=0 AND is_deleted = ? AND ( school_name = ? OR school_code = ? )
对应的java 代码:
QueryWrapper<GxySchoolDto> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_deleted",0);
queryWrapper.and(wrapper -> wrapper.eq("school_name",schoolEntity.getSchoolName()).or().eq("school_code",schoolEntity.getSchoolCode()));
GxySchoolDto isByName = gxySchoolMapper.selectOne(queryWrapper);
5. in 语句:
QueryWrapper<NoticeTodoDto> queryWrapper = new QueryWrapper();
queryWrapper.eq("snow_flake_id",gxyTodoDto.getSnowFlakeId());
queryWrapper.eq("object_id",gxyTodoDto.getObjectId());
queryWrapper.in("state",1,2);
NoticeTodoDto todoDto= noticeTodoMapper.selectOne(queryWrapper);
return todoDto;
6. 刪除
接口:
@Mapper
public interface GxyPlanDepMapper extends BaseMapper<GxyPlanDepDto> { } Bean:
@Data
@TableName("gxy_plan_dep")
public class GxyPlanDepDto implements Serializable {
private static final long serialVersionUID = 1L; private int isDeleted;
/**
* 创建时间
*/
private Date createTime;
/**
* 唯一主键
*/
@TableId(value = "plan_dep_id",type = IdType.UUID)
private String planDepId;
/**
* 计划Id
*/
private String planId;
/**
* 系部id
*/
private String depId;
}
实现层:
planDepMapper.delete(new QueryWrapper<GxyPlanDepDto>().eq("plan_id",teacherStudentEntity.getPlanId()));
SQL:
DELETE FROM gxy_plan_dep
WHERE plan_id = ? ::: [a7637ddc0cafd26278ffc4be12262054]
7 修改
GxyPlanTeacherStudentDto dto = new GxyPlanTeacherStudentDto();
dto.setBackup(teacherStudentEntity.getPlanId());
dto.setPlanId(teacherStudentEntity.getNewPlanId());
dto.setTeacherId(teacherStudentDto.getTeacherId());
dto.setJobId(teacherStudentDto.getJobId());
dto.setCompanyName(teacherStudentDto.getCompanyName()); QueryWrapper wrapper = new QueryWrapper<GxyPlanTeacherStudentDto>().eq("plan_teacher_student_id", teacherStudentDto.getPlanTeacherStudentId()).eq("snow_flake_id", teacherStudentEntity.getSnowFlakeId());
planTeacherStudentMapper.update(dto,wrapper);
根据 wrapper 的条件,查出记录, 修改 dto 中的字段。
当在 bean 中加了 @TableField(strategy= FieldStrategy.IGNORED) 注解,当 dto 中 该字段是null 时,update 修改该字段, 表中该字段也改成null 。 如果不加这个注解,当dto 中 该字段是null 时, update 语句不修改该字段。
@TableField(strategy= FieldStrategy.IGNORED)
private String jobId; 8: 分页查询
Page page = new Page(teacherStudentEntity.getCurrPage(),teacherStudentEntity.getPageSize());
IPage<GxyMultiStudentPlanTmpDto> page1 =
multiStudentPlanTmpMapper.selectPage(page, new QueryWrapper<GxyMultiStudentPlanTmpDto>()
.eq("create_by",teacherStudentEntity.getUserId())
.eq("is_deleted",0));
List<GxyMultiStudentPlanTmpDto> list = page1.getRecords();
return ListResponse.resList(list,page1.getTotal());
9: mybatis 查询可以返回Set 或者List:
Mapper:
Set<String> selectMyStudent(@Param("params") GxyPlanTeacherStudentEntity planTeacherStudentEntity);
XML:
<select id="selectMyStudent" resultType="java.lang.String">
SELECT pstu.student_id
from gxy_plan_teacher_student AS pstu LEFT JOIN gxy_plan AS p ON pstu.plan_id = p.plan_id
WHERE pstu.is_deleted = 0
<choose>
<when test="params.planId != null and params.planId != ''">
AND pstu.plan_id = #{params.planId}
</when>
<otherwise>
and p.plan_state = 1
</otherwise>
</choose> <if test="params.teacherId !='' and params.teacherId!=null">
AND pstu.teacher_id = #{params.teacherId}
</if>
<if test="params.position != null and params.position !=''">
AND FIND_IN_SET(#{params.position},t.position)
</if>
</select>
AND position LIKE concat('%',#{roleName},'%')
10. 修改 , 根据 QueryWrapper 条件查询出所有的记录 后 修改 dto 实体中设置的字段
MoguDeliverDto dto= new MoguDeliverDto();
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("user_id",deliver.getUserId());
dto.setAcceptOffer(0);
moguDeliverMapper.update(dto,queryWrapper);
UPDATE mogu_deliver SET accept_offer=?, modified_time=? WHERE is_deleted=0 AND user_id = ?
dto
mybatisplus的更多相关文章
- 2、SpringBoot+MybatisPlus整合-------BaseCRUD
开发工具:STS 代码下载链接:GitHub管理代码 版本: Springboot:1.5.14.RELEASE 使用2.0以上的Springboot,会报出一些异常.欢迎知道异常原因的大牛解惑. M ...
- 使用 Mybatis-plus 进行 crud 操作
1 Mybatis-Plus简介 1.1 什么是Mybatis-Plus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化 ...
- SpringCloud或SpringBoot+Mybatis-Plus利用mybatis插件实现数据操作记录及更新对比
引文 本文主要介绍如何使用mybatis插件实现拦截数据库操作并根据不同需求进行数据对比分析,主要适用于系统中需要对数据操作进行记录.在更新数据时准确记录更新字段 核心:mybatis插件(拦截器). ...
- SpringBoot图文教程11—从此不写mapper文件「SpringBoot集成MybatisPlus」
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...
- 赶紧收藏吧!MyBatis-Plus万字长文图解笔记,错过了这个村可就没这个店了
简介 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生 愿景 我们的愿景是成为 MyBatis 最好的搭档 ...
- maven 打包含有第三方依赖的 jar 包
maven 打包含有第三方依赖的 jar 包:mvn assembly:assembly
- Maven打包含有Main方法jar并运行
最近使用Kettle做定时数据抽取,因为Job更新或需求变更,修改Bug等种种原因,需要对重跑Job一般是针对每天的数据重跑一次.刚开始的做法是直接在自己的开发机器上重跑,这样速度比较慢,因为这时候你 ...
- 怎么统计指定文件夹下含有.xml格式的文件数目
如何统计指定文件夹下含有.xml格式的文件数目?如题 ------解决思路----------------------Directory.GetFiles(@"路径", " ...
- WordPress上传含有中文文件出现乱码
最近打算学习安装配置WordPress,当然同时也在学习PHP+MySQL,希望以后能做一些关于WordPress定制和二次开发,包括主题和插件.在成功安装WordPress3.5中文版之后,就测试了 ...
- [ jquery 过滤器 hasClass(class) ] 此方法用于在选择器的基础之上检查当前的元素是否含有某个特定的类,如果有,则返回true
此方法用于在选择器的基础之上检查当前的元素是否含有某个特定的类,如果有,则返回true 实例: <!DOCTYPE html> <html lang='zh-cn'> < ...
随机推荐
- EasyUI+JSP之java读取数据库后JSON格式数据的返回及调用
做作业工程中遇到一些问题,特此记录一下 解决的问题:使用EasyUI框架搭建简单学生管理系统(数据库增删改查)操作时配合JSP,不知道如何把从数据库获得的数据封装成JSON格式并传回前端JSP并进行展 ...
- Hadoop_12_Hadoop 中的RPC框架演示
Hadoop中自己提供了一个RPC的框架.集群中各节点的通讯都使用了那个框架 1.服务端 1.1.业务接口:ClientNamenodeProtocol package cn.bigdata.hdfs ...
- 图像处理---《Canny 边缘检测》
图像处理---<Canny 边缘检测> 很想系统的把图像处理之边缘检测部分详细的过一遍,对比一个各个算子的优良性能.时间紧,精力有限,现在只能走哪补哪,随手记. 有几个简单的场景,有需要, ...
- jemeter生成测试报告
Jmeter生成测试报告 相对于Loadrunner,Jmeter其实也是可以有测试报告产出的,虽然一般都不用(没有Loadrunner的报告那么强大是一方面),还是顺手写一下吧,其实方法在用命令 ...
- HDU - 3506 Monkey Party
HDU - 3506 思路: 平行四边形不等式优化dp 这不就是石子归并(雾 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma G ...
- ndk学习之C语言基础复习----基本数据类型、数组
关于NDK这个分类在N年前就已经创建了,但是一直木有系统的记录其学习过程,当然也没真正学会NDK的技术真谛,所以一直也是自己的一个遗憾,而如今对于Android程序员的要求也是越来越高,对于NDK也是 ...
- 基于递归的BFS(Level-order)
上篇中学习了二叉树的DFS深度优先搜索算法,这次学习另外一种二叉树的搜索算法:BFS,下面看一下它的概念: 有些抽象是不?下面看下整个的遍历过程的动画演示就晓得是咋回事啦: 了解其概念之后,下面看下如 ...
- linux 的环境变量的配置文件
原文:https://www.cnblogs.com/yuemw/p/8081219.html ---------------------------------------------------- ...
- windows安装mysql(5.7.26版本)压缩包
1.解压安装包,进入文件夹,并创建一个data文件夹! 2.修改 my-default.ini 文件 [mysql] default-character-set=utf8 [mysqld] port ...
- IntelliJ 如何显示代码的代码 docs
希望能够在 IntelliJ 代码上面显示方法的 docs. 如何进行显示? 你可以使用 Ctrl + Q 这个快捷键来查看方法的 Docs. https://blog.ossez.com/archi ...