Mybatis-plus:${ew.sqlselect}用法说明

目录
  • Mybatis-plus:${ew.sqlselect}
    • 使用步骤
  • Mybatis-plus ${ew.sqlSegment}踩坑

Mybatis-plus:${ew.sqlselect}

上篇文章是通过动态注入的方式去筛选查询条件,这次我们用mybatis-plus自带的${ew.sqlselect}来筛选。

也就是Constants源码里的这个属性

使用步骤

1.在xml文件里引入

    <!--表数据list-->
    <select id="tableList" resultType="java.util.LinkedHashMap">
        SELECT
            ${ew.sqlSelect} // 这里拼接select后面的语句
        FROM
            ${table_name} //如果是单表的话,这里可以写死
        ${ew.customSqlSegment}
    </select>

2.mapper文件

 //表数据list
 IPage<LinkedHashMap<String,Object>> tableList(@Param("table_name") String table_name,
                                                  Page page,
                                                  @Param(Constants.WRAPPER) QueryWrapper queryWrapper);

3.用法

     String responseField = "*"; //先把拿到的值设为*,如果responsefield.equals或者为null,就使用默认值,这样就可以查询所有条件
        if (nativeWebRequest.getParameter("response_field") != null && !nativeWebRequest.getParameter("response_field").equals("")) {
            responseField = nativeWebRequest.getParameter("response_field");
        }
        if (responseField.length() != 0 && !"".equals(responseField)) {
            queryWrapper.select(responseField);
        }

不加入responsefield字段,或者responsefield字段为空时,查询所有的值

加入responsefield字段后,查询对应的值

Mybatis-plus ${ew.sqlSegment}踩坑

使用${ew.sqlSegment} 如果是连表查询且查询条件是连表的字段则需在service层拼接查询条件时字段前指定别名

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

(0)

相关推荐

  • Mybatisplus详解如何注入自定义的SQL

    目录 SQL 注入器 第一步重写getMethodList 第二步定义自己的SQL方法类 第三步定义添加了自定义方法的Mapper类 测试调用 遗留问题 SQL 注入器 官方文档提供了一个小案例 自定义 Mapper 示例 解读:DefaultSqlInjector就是一个注册类,其中注册了一系列 mybatis-plus 内置的 update,insert,select SQL 语句方法, 并且对表主键是否存在进行了判定:如果设置了主键,那么会注册 DeleteById 等方法,没有则不注册.

  • springboot下mybatis-plus如何打印sql日志和参数到日志文件

    最近在使用springboot过程中用到了mybatis-plus ,springboot版本是2.3.1.RELEASE,mybatis-plus 版本3.2.0. <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> </dep

  • mybatis-plus的sql语句打印问题小结

    目录 第一种方式: 第二种方式: mybatis-plus使用时候的小问题记录. 在使用mybatis-plus的时候需要把sql的语句打印出来,查看执行的成功与否,在以前的项目的时候使用过这种各样的方式,在使用mybatis-plus上面也使用过两种方式,今天将常用的方式拷贝过来之后,发现没有发生效果(开始的时候以为是使用配置中心nacos导致问题,最后经过仔细的检查发现是单词拼错了),所以在这里记录一下. 第一种方式: mybatis-plus: configuration: log-imp

  • Mybatis-Plus读写Mysql的Json字段的操作代码

    目录 前置条件 一.新建mysql表增加json字段 二.pojo类 三.测试类 前置条件 确保mysql的版本是5.7+ 一.新建mysql表增加json字段 二.pojo类 package com.cxstar.domain; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.

  • 解决MybatisPlus SqlServer OFFSET 分页问题

    目录 问题 错误源码重现 找资料 解决 问题 使用MybatisPlus 连接 SqlServer 数据库 ,在分页的时候发生了如下的报错,sql语句和报错如下: Cause: com.microsoft.sqlserver.jdbc.SQLServerException: “@P0”附近有语法错误....SQL: SELECT  * FROM tb_admin  OFFSET 0 ROWS FETCH NEXT 15 ROWS ONLY 错误源码重现 依赖 <!-- mybatis-plus

  • MybatisPlus保存、读取MySQL中的json字段失败问题及解决

    目录 MybatisPlus保存.读取MySQL的json字段失败 场景 解决方案 Mybatis插入MySQL的json字段报错 解决办法 MybatisPlus保存.读取MySQL的json字段失败 场景 mybatis-plus保存mysql数据库,有字段为json,在java中定义字段为String,但是在保存的时候,json数据没有入库,为空,代码执行未报错. 解决方案 直接用对应的Object来做映射,然后增加对应的@TableField注解 @Data public class U

  • SQL数据分表Mybatis Plus动态表名优方案

    目录 一.应用场景 二.动态表名处理器接口实现 三.测试实现效果 一.应用场景 大家在使用Mybatis进行开发的时候,经常会遇到一种情况:按照月份month将数据放在不同的表里面,查询数据的时候需要跟不同的月份month去查询不同的表. 但是我们都知道,Mybatis是ORM持久层框架,即:实体关系映射,实体Object与数据库表之间是存在一一对应的映射关系. 比如: @Data public class Student {     private Integer id;     privat

  • MybatisPlus EntityWrapper如何自定义SQL

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

  • MybatisPlus如何处理Mysql的json类型

    目录 MybatisPlus处理Mysql的json类型 MyBatis Plus - xml中如何使用autoResultMap构造的ResultMap MyBatis-Plus - JacksonTypeHandler VS FastjsonTypeHandler MybatisPlus读写Mysql的json字段 前置条件 一.新建mysql表增加json字段 二.pojo类 三.测试类 MybatisPlus处理Mysql的json类型 1.在数据库表定义JSON字段: 2.在实体类加上

  • Mybatis-plus:${ew.sqlselect}用法说明

    目录 Mybatis-plus:${ew.sqlselect} 使用步骤 Mybatis-plus ${ew.sqlSegment}踩坑 Mybatis-plus:${ew.sqlselect} 上篇文章是通过动态注入的方式去筛选查询条件,这次我们用mybatis-plus自带的${ew.sqlselect}来筛选. 也就是Constants源码里的这个属性 使用步骤 1.在xml文件里引入 <!--表数据list--> <select id="tableList"

  • MyBatis动态SQL标签用法实例详解

    1.动态SQL片段 通过SQL片段达到代码复用 <!-- 动态条件分页查询 --> <sql id="sql_count"> select count(*) </sql> <sql id="sql_select"> select * </sql> <sql id="sql_where"> from icp <dynamic prepend="where&quo

  • 浅谈MyBatis循环Map(高级用法)

    今天遇到一个比较特殊的业务,需要对传入的Map数据在映射文件中进行遍历,在之前的学习中,我们也知道MyBatis有默认对集合的操作list和array,但是没有默认的map,所有不能直接写collection="map",如果这么处理,它会当成是根据map.get("map")获取传递value只,==大部分情况下是一个map中是不会有"map"这个key的,于是就是报错==.如果你想用map标识来获取参数map,就需要保证传入的Map参数有@P

  • java中mybatis和hibernate的用法总结

    在项目开发上,hibernate提供的经验简化了不少工作量和兼容性,但这些绝对需要有经验后才能明白,对于新手来说使用起来很困难.hibernate比mybatis掌握难度要高一些,对sql的控制弱一些.下面我们就三个方面带来mybatis和hibernate的总结分析,一起来看看二者的比较吧. 1.开发效率 如果是做一些简单的CMS类似的只有简单的增删改查的项目,那么使用Hibernate更有优势,不需要掌握太多的Hibernate知识,只需要会一些基本的查询和一些配置(Hibernate真正要

  • Mybatis Example的高级用法详解

    目录 Mybatis Example的高级用法 一. mapper接口中的函数及方法 二. example实例方法 三. 使用案例 说说Mybatis Example常见用法 一. 说明 二. 排序查询 三. 查询limit, 只返回前50条数据 Mybatis Example的高级用法 近几个项目一直使用的mybatis来对数据库做查询,期间用到了很多高效简洁的查询方法,特此记录和分享. 一. mapper接口中的函数及方法 方法名 功能 int countByExample(UserExam

  • mybatis Example的Criteria用法:or与isNull详解

    目录 mybatis Example的Criteria用法or与isNull 1.or 2.isNull mybatis Criteria的使用 mybatis Example的Criteria用法or与isNull 1.or BaUserExample baUserExample = new BaUserExample(); Criteria criteria1 = baUserExample.createCriteria(); criteria1.andOrgIdEqualTo("1&quo

  • Mybatis Plus QueryWrapper复合用法详解

    目录 QueryWrapper复合用法 使用QueryWrapper小结 mybatisplus自定义分页查询 其中ew.customSqlSegment QueryWrapper 设置参数几种格式 有关queryWrapper使用or条件时 QueryWrapper复合用法 Mybatis Plus作为一个强大的msql插件,简化了DAO许多操作,使得我们的代码看上去更加优雅一些: 这里主要记录一下QueryWrapper的复杂查询用法 LambdaQueryWrapper<T> query

  • Java的MyBatis框架中MyBatis Generator代码生成器的用法

    关于Mybatis Generator MyBatis Generator (MBG) 是一个Mybatis的代码生成器 MyBatis 和 iBATIS. 他可以生成Mybatis各个版本的代码,和iBATIS 2.2.0版本以后的代码. 他可以内省数据库的表(或多个表)然后生成可以用来访问(多个)表的基础对象. 这样和数据库表进行交互时不需要创建对象和配置文件. MBG的解决了对数据库操作有最大影响的一些简单的CRUD(插入,查询,更新,删除)操作. 您仍然需要对联合查询和存储过程手写SQL

  • mybatis中resulthandler的用法

    目录 resulthandler的用法 创建实体类 sql,返回值类型要写 Mapper,返回值必须是void Test ResultHandler(传入map返回map) 测试代码 实现 xml resulthandler的用法 ResultHandler,顾名思义,对返回的结果进行处理,最终得到自己想要的数据格式或类型.也就是说,可以自定义返回类型.下面通过一个例子讲解它的使用方法: 创建实体类 package com.ccb.demossm.entity; import com.ccb.d

  • Mybatis choose when用法实例代码

    mybatis choose when的用法实现代码如下所示: mapper.xml: <select id="query" resultType="map" parameterType="map"> select <choose> <when test="cityId == '00' "> a.city_id as CITYID, </when> <otherwise&g

随机推荐