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的更多相关文章

  1. 2、SpringBoot+MybatisPlus整合-------BaseCRUD

    开发工具:STS 代码下载链接:GitHub管理代码 版本: Springboot:1.5.14.RELEASE 使用2.0以上的Springboot,会报出一些异常.欢迎知道异常原因的大牛解惑. M ...

  2. 使用 Mybatis-plus 进行 crud 操作

    1 Mybatis-Plus简介 1.1 什么是Mybatis-Plus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化 ...

  3. SpringCloud或SpringBoot+Mybatis-Plus利用mybatis插件实现数据操作记录及更新对比

    引文 本文主要介绍如何使用mybatis插件实现拦截数据库操作并根据不同需求进行数据对比分析,主要适用于系统中需要对数据操作进行记录.在更新数据时准确记录更新字段 核心:mybatis插件(拦截器). ...

  4. SpringBoot图文教程11—从此不写mapper文件「SpringBoot集成MybatisPlus」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...

  5. 赶紧收藏吧!MyBatis-Plus万字长文图解笔记,错过了这个村可就没这个店了

    简介 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生 愿景 我们的愿景是成为 MyBatis 最好的搭档 ...

  6. maven 打包含有第三方依赖的 jar 包

    maven 打包含有第三方依赖的 jar 包:mvn assembly:assembly

  7. Maven打包含有Main方法jar并运行

    最近使用Kettle做定时数据抽取,因为Job更新或需求变更,修改Bug等种种原因,需要对重跑Job一般是针对每天的数据重跑一次.刚开始的做法是直接在自己的开发机器上重跑,这样速度比较慢,因为这时候你 ...

  8. 怎么统计指定文件夹下含有.xml格式的文件数目

    如何统计指定文件夹下含有.xml格式的文件数目?如题 ------解决思路----------------------Directory.GetFiles(@"路径", " ...

  9. WordPress上传含有中文文件出现乱码

    最近打算学习安装配置WordPress,当然同时也在学习PHP+MySQL,希望以后能做一些关于WordPress定制和二次开发,包括主题和插件.在成功安装WordPress3.5中文版之后,就测试了 ...

  10. [ jquery 过滤器 hasClass(class) ] 此方法用于在选择器的基础之上检查当前的元素是否含有某个特定的类,如果有,则返回true

    此方法用于在选择器的基础之上检查当前的元素是否含有某个特定的类,如果有,则返回true 实例: <!DOCTYPE html> <html lang='zh-cn'> < ...

随机推荐

  1. VSCode 快捷键定义

    默认的 Toggle explore side bar 快捷键为 Ctrl + B, 但是这和 Vim 的快捷键冲突,解决方法: File  >  Preferences  >  Keyb ...

  2. python_函数作用域

    py文件:全局作用域 函数:局部作用域 一个函数是一个作用域 def func(): x = 9 print(x) func() print(x) 作用域中查找数据规则:优先在自己的作用域找数据,自己 ...

  3. hivesql之 table名 with as 转储

    可能某个子查询在多个层级多个地方存在重复使用的情况,这个时候我们可以使用 with as 语句将其独立出来,极大提高SQL可读性,简化SQL~ 注:目前 oracle.sql server.hive等 ...

  4. python常用函数拾零

    Python常用内置函数总结: 整理过程中参考了runoob网站中python内置函数的相关知识点,特此鸣谢!! 原文地址:http://www.runoob.com/python/python-bu ...

  5. vector简单使用

    在刷ccf题的时候日常做完去网上查看别的同学怎么做的 发现有使用vector后三十几行代码就写出来的,虽然时间复杂度和我一样十几毫秒,but !我看中了它的代码量啊!多么的少啊! 所以百度了vecto ...

  6. BZOJ 2458: [BeiJing2011]最小三角形 (分治)

    分治就是了. 类似于分治找最近/远点对. CODE #include <bits/stdc++.h> using namespace std; const double eps = 1e- ...

  7. Python模块之目录

     1.加密算法有关 hmac模块 hashlib模块 2.进程有关 multiprocessing模块 3.线程有关 threading模块 4.协程有关 asyncio模块 5.系统命令调用 sub ...

  8. keras使用AutoEncoder对mnist数据降维

    import keras import matplotlib.pyplot as plt from keras.datasets import mnist (x_train, _), (x_test, ...

  9. C++ 头文件的理解

    变量.函数在使用前必须被声明.至于函数里干了什么,编译时不关注,链接(link)时,才会去搜寻所有编译后的文件,寻找函数具体干了什么. *.h头文件干的事情就像“复制-粘贴”,哪里引用,就把*.h内容 ...

  10. learning memchr func

    extern void *memchr(const void *buf, int ch, size_t count);   用法:#include <string.h> 功能:从buf所指 ...