MybatisPlus EntityWrapper如何自定义SQL

目录
  • EntityWrapper自定义SQL
    • 第一种
    • 第二种
    • 第三种
  • MybatisPlus自定义sql查询

EntityWrapper自定义SQL

在mybatis plus中根据条件构造器,构建SQL查询是很方便的,使用条件构造器可以替代我们写SQL。下面我们看几个例子。

第一种

使用T selectOne(Wrapper<T> wrapper);我们只需要传递入我们创建一个EntityWrapper()并将条件拼接好就可以。

例如new EntityWrapper().eq("id","1")就是查询id等于1的这条数据。这里不仅仅支持eq(),还有like,not like ,group by等,差不多在SQL中需要的这里都有。

第二种

在单表查询的时候我们需要自定义列的时候则使用setSqlSelect方法,具体如下:

/**此格式的意思为requireParam传参了才创建where条件,请按照此格式撰写代码
*Object为你的单表实体类
*requireParam为入参实体类
*EntityWrapper<Object> ew = new EntityWrapper<Object>(requireParam);是为了让构造where条件
*我在前面给requireParam的state属性设置了值为1,所以这里会自动拼接上where条件,如果不需要的话则可不传requireParam
*
*
**/
            EntityWrapper<Object> ew = new EntityWrapper<Object>(requireParam);
            /**设置需要查询的列名**/
            ew.setSqlSelect("id,resource_id,user_id,username,content,createtime,parent_id," +
                    " path,type,like_count")
                    /**排序方式**/
                    .orderBy(false,"path",false);

同第一种情况一样,后面可以继续拼接各种条件。

第三种

EntityWrapper()拼接where条件,这个其实在第二种情况中已经讲了,就是根据我们创建EntityWrapper的时候有没有入参来做。

到目前我们只用到了这些,以后遇到了我会继续更新。

MybatisPlus自定义sql查询

public void reconciliationForConfirmOne(Integer Id, Integer payoffType) {
    List<FinanceReconciliationEntity> frList = financeReconciliationService.selectList(
            new EntityWrapper<FinanceReconciliationEntity>()
                    .eq("payoff_id", Id)
                    .eq("payoff_type", payoffType)
                    .where("(reconciliation_status <> 1 OR reconciliation_status IS NULL)")
    );
    for (FinanceReconciliationEntity fr : frList) {
        fr.setReconciliationStatus(1);
    }
    if (frList != null && frList.size() > 0) {
        financeReconciliationService.updateBatchById(frList);
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • mybatisplus中EntityWrapper的常用方法

    目录 EntityWrapper的常用方法 粗心遇到的EntityWrapper的一个坑 原因 解决方案 EntityWrapper的常用方法 #WHERE (issue_type = ?) AND (status = ? OR status = ? OR status = ?) EntityWrapper wrapper=new EntityWrapper(); wrapper.eq("issue_type","缺陷").andNew().eq("sta

  • mybatis条件构造器(EntityWrapper)的使用方式

    目录 mybatis条件构造器(EntityWrapper)使用 需求 直接看几个案例体会EntityWrapper的使用 Wrappers使用的坑点 mybatis条件构造器(EntityWrapper)使用 基本的 CRUD 操作,我们仅仅需要继承一个 BaseMapper 即可实现大部分单表 CRUD 操作.BaseMapper 提供了多达 17 个方法供使用, 可以极其方便的实现单一.批量.分页等操作,极大的减少开发负担. 但是mybatis-plus的强大不限于此,请看如下需求该如何处

  • MyBatis-Plus工具使用之EntityWrapper解析

    目录 EntityWrapper使用解析 EntityWrapper源码解读 EntityWrapper使用解析 1.项目中引入jar包,我这里使用Maven构建 <dependency>     <groupId>com.baomidou</groupId>     <artifactId>mybatis-plus</artifactId>     <version>仓库最高版本号</version> </depe

  • 关于EntityWrapper的in用法

    目录 EntityWrapper的in用法 mybatis-plus EntityWrapper in 举个例子 EntityWrapper的in用法 EntityWrapper<UserLife> wrapper = new EntityWrapper<>(); wrapper.eq("is_valid", 1); wrapper.in("life_name", "ge,edu,career"); List<Use

  • MybatisPlus EntityWrapper如何自定义SQL

    目录 EntityWrapper自定义SQL 第一种 第二种 第三种 MybatisPlus自定义sql查询 EntityWrapper自定义SQL 在mybatis plus中根据条件构造器,构建SQL查询是很方便的,使用条件构造器可以替代我们写SQL.下面我们看几个例子. 第一种 使用T selectOne(Wrapper<T> wrapper);我们只需要传递入我们创建一个EntityWrapper()并将条件拼接好就可以. 例如new EntityWrapper().eq("

  • MyBatis-Plus自定义SQL的详细过程记录

    目录 前言 一.在src/main/resource目录下编写XML 1.1  目录结构 1.2   编写实体类对应的Mapper接口 1.3  编写UserMapper.xml 1.4  在配置文件中扫描我们的xml配置的位置. 1.5  测试 二.在src/main/java目录下编写XML 2.1  目录结构 2.2   编写实体类对应的Mapper接口 2.3   编写UserMapper.xml 2.4   编写配置文件 2.5   配置pom.xml(重要) 2.6  测试 三.cl

  • MyBatisPlus 自定义sql语句的实现

    一.引言 Good Good Study,Day Day Up MP自带的条件构造器虽然很强大,有时候也避免不了写稍微复杂一点业务的sql,那么那么今天说说MP怎么自定义sql语句吧. 二.配置 自定义的sql当然是写在XML文件中的啦,那么首先来定义xml文件的位置,在yml配置文件如下 mybatis-plus: # 如果是放在src/main/java目录下 classpath:/com/*/*/mapper/*Mapper.xml # 如果是放在resource目录 classpath:

  • MybatisPlus自定义Sql实现多表查询的示例

    前言 前段时间看同事的代码,发现他用Layui+MybatisPlus做分页查询做得很规整,认真看了下代码发现这种方式不仅适用于与Layui做分页查询,在任何时候需要多表联查的时候都可以用到.  以下以Layui分页查询作为参考,在实际应用中可以灵活使用. 分页查询VO对象 @Data @AllArgsConstructor @NoArgsConstructor public class LayuiData { private Integer code=0; private Long count

  • MyBatis-Plus 分页查询以及自定义sql分页的实现

    一.引言 分页查询每个人程序猿几乎都使用过,但是有部分同学不懂什么是物理分页和逻辑分页. 物理分页:相当于执行了limit分页语句,返回部分数据.物理分页只返回部分数据占用内存小,能够获取数据库最新的状态,实施性比较强,一般适用于数据量比较大,数据更新比较频繁的场景. 逻辑分页:一次性把全部的数据取出来,通过程序进行筛选数据.如果数据量大的情况下会消耗大量的内存,由于逻辑分页只需要读取数据库一次,不能获取数据库最新状态,实施性比较差,适用于数据量小,数据稳定的场合. 那么MP中的物理分页怎么实现

  • MyBatis-Plus 自定义sql语句的实现

    一.引言 Good Good Study,Day Day Up,童鞋点个关注,不迷路,么么哒--- MP自带的条件构造器虽然很强大,有时候也避免不了写稍微复杂一点业务的sql,那么那么今天说说MP怎么自定义sql语句吧. 二.配置 自定义的sql当然是写在XML文件中的啦,那么首先来定义xml文件的位置,在yml配置文件如下 mybatis-plus: # 如果是放在src/main/java目录下 classpath:/com/*/*/mapper/*Mapper.xml # 如果是放在res

  • mybatis-plus实现自定义SQL、多表查询与多表分页查询语句实例

    目录 前言 1.自定义SQL 2.多表查询 3.多表分页查询 4.多表分页条件查询 总结 前言 本文介绍了在mybatis-plus中如何实现:自定义SQL语句,多表查询语句,多表分页查询语句 在说怎么实现之前我们要先明白一个概念,就是mybatis-plus是在mybatis的基础上进行增强,并不做改变,所以mybatis的操作在mybatis-plus中也是一样可以使用的,咱们直接上代码 1.自定义SQL 在mapper中自定义一个方法即可 @Repository public interf

  • mybatis-plus自带QueryWrapper自定义sql实现复杂查询实例详解

    目录 常用写法 自定义sql 补充: 查询条件中使用函数apply 补充: 末尾sql追加last 补充:排序 补充:Mybatis-Plus QueryWrapper +sql自定义查询 总结 常用写法 xxxDO=实体类, 相当于: select name, id from xxx group by name where delete_flag = 0 and status = 0 LambdaQueryWrapper<xxxDO> queryWrapper = Wrappers.lamb

  • MyBatis-Plus 动态表名SQL解析器的实现

    一.引言 先来说下动态名表在什么场景下需要使用呢? 拿小编的实际项目来说,小编公司手里掌握着国内各个部分地区的医院患者数据,那么一个医院的患者的数据流量肯定是很大的,这个时候如果全部放在同一张表中,那么可想而知数据量的庞大.所以数据库设计的时候可以一家医院对应一张表,分开来存储,表中的列名都是一样的,只是表名不同. 或者还可以做日志的存储,日志数据量也是很大的,可以分一个月对应一张表,比如:log_201907.log_201908等等之类的. 二.具体实现 动态表名SQL解析器也是基于MP分页

  • mybatis-plus 使用Condition拼接Sql语句各方法的用法

    mybatis-plus Condition拼接Sql语句各方法 1.setSqlSelect-用于添加查询的列信息 public Wrapper<T> setSqlSelect(String... columns) { StringBuilder builder = new StringBuilder(); String[] arr = columns; int len = columns.length; for(int i = 0; i$ < len; ++i$) { String

随机推荐