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层拼接查询条件时字段前指定别名
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Mybatisplus详解如何注入自定义的SQL
目录 SQL 注入器 第一步重写getMethodList 第二步定义自己的SQL方法类 第三步定义添加了自定义方法的Mapper类 测试调用 遗留问题 SQL 注入器 官方文档提供了一个小案例 自定义 Mapper 示例 解读:DefaultSqlInjector就是一个注册类,其中注册了一系列 mybatis-plus 内置的 update,insert,select SQL 语句方法, 并且对表主键是否存在进行了判定:如果设置了主键,那么会注册 DeleteById 等方法,没有则不注册.
-
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
-
解决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 Plus - xml中如何使用autoResultMap构造的ResultMap MyBatis-Plus - JacksonTypeHandler VS FastjsonTypeHandler MybatisPlus读写Mysql的json字段 前置条件 一.新建mysql表增加json字段 二.pojo类 三.测试类 MybatisPlus处理Mysql的json类型 1.在数据库表定义JSON字段: 2.在实体类加上
-
mybatis-plus的sql语句打印问题小结
目录 第一种方式: 第二种方式: mybatis-plus使用时候的小问题记录. 在使用mybatis-plus的时候需要把sql的语句打印出来,查看执行的成功与否,在以前的项目的时候使用过这种各样的方式,在使用mybatis-plus上面也使用过两种方式,今天将常用的方式拷贝过来之后,发现没有发生效果(开始的时候以为是使用配置中心nacos导致问题,最后经过仔细的检查发现是单词拼错了),所以在这里记录一下. 第一种方式: mybatis-plus: configuration: log-imp
-
SQL数据分表Mybatis Plus动态表名优方案
目录 一.应用场景 二.动态表名处理器接口实现 三.测试实现效果 一.应用场景 大家在使用Mybatis进行开发的时候,经常会遇到一种情况:按照月份month将数据放在不同的表里面,查询数据的时候需要跟不同的月份month去查询不同的表. 但是我们都知道,Mybatis是ORM持久层框架,即:实体关系映射,实体Object与数据库表之间是存在一一对应的映射关系. 比如: @Data public class Student { private Integer id; privat
-
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.
-
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
-
MybatisPlus EntityWrapper如何自定义SQL
目录 EntityWrapper自定义SQL 第一种 第二种 第三种 MybatisPlus自定义sql查询 EntityWrapper自定义SQL 在mybatis plus中根据条件构造器,构建SQL查询是很方便的,使用条件构造器可以替代我们写SQL.下面我们看几个例子. 第一种 使用T selectOne(Wrapper<T> wrapper);我们只需要传递入我们创建一个EntityWrapper()并将条件拼接好就可以. 例如new EntityWrapper().eq("
-
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
随机推荐
- php实现的网页版剪刀石头布游戏示例
- sql server 2008 忘记sa密码的解决方法
- Angular 4 指令快速入门教程
- Filezilla server配置FTP服务器中的各种问题与解决方法
- EDI中JAVA通过FTP工具实现文件上传下载实例
- UIImage加载图片Images.xcassets加载方法的影响
- iOS10添加本地推送(Local Notification)实例
- Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
- Android自定义控件的创建方法
- javascript函数的四种调用模式
- 用于deeplink的js方法(判断手机是否安装app)
- asp #include file 与 #include virtual 的区别小结第1/2页
- jQuery插件ajaxFileUpload使用实例解析
- SQL Server 2008 Express如何开启远程访问
- Log4j按级别输出日志到不同文件的实现方法
- javascript异步编程的4种方法
- 全面理解JavaScript中的闭包
- 微信小程序 wx.request(object) API详解及实例代码
- win8下IIS 8.5下设置404错误页
- Android adb.exe程序启动不起来 具体解决方法