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'> < ...
随机推荐
- javascript typeof instanceof
typeof用以获取一个变量或者表达式的类型,typeof一般只能返回如下几个结果: number,boolean,string,function(函数),object(NULL,数组,对象),und ...
- WebRTC基于GCC的拥塞控制算法[转载]
实时流媒体应用的最大特点是实时性,而延迟是实时性的最大敌人.从媒体收发端来讲,媒体数据的处理速度是造成延迟的重要原因:而从传输角度来讲,网络拥塞则是造成延迟的最主要原因.网络拥塞可能造成数据包丢失,也 ...
- 1.打开windows中功能的快捷方式
1.打开组策略 命令:gpedit.msc 2.打开注册表 命令:regedit 3.快速打开本地安全组策略 命令:secpol.msc 4.打开服务 命令:services.msc 5.系统退域的时 ...
- 洛谷P1363 幻想迷宫【dfs】
题目:https://www.luogu.org/problemnew/show/P1363 题意: 有一个地图,起点是S,障碍物用#表示.可以将这个地图不断的在四周重复,问从起点开始是否可以走到无限 ...
- c++中lambda表达式的用法
#include <iostream> using namespace std; int main(){ ; auto func1 = [=](;}; auto func2 = [& ...
- curl查看http请求消息的时长
1. -X 指定请求方式GET请求curl -X GET http://www.jackyops.com/search?data=123 # -X GET是可选的 POST请求curl -X POS ...
- Luogu P2146 [NOI2015]软件包管理器 树剖
卸载:把子树清空: 安装:把自己到$1$的链改为$1$ #include<cstdio> #include<iostream> #include<cstring> ...
- Laravel 项目中事件控制的体会--综合应用 trait 多态
1 我们想像有这样的需求 1.1 应用中有两个类.其一是 荣誉(Honour)其一是 档案(Archive)Honour 和 Arhcive 是多态关联.即拥有档案属性的不只荣誉类,还有更多的类去关联 ...
- whatis
whatis 查看命令的说明文档位置及说明 是从数据库中取查找 手动更新数据库 并不是每个命令都有,
- Spring Boot中@OneToMany与@ManyToOne几个需要注意的问题
@OneToMany如果不加@JoinColumn,系统会自动在主从表中增加一个中间表. 主表: @Entity(name = "Post") public class Post ...