Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mybatis @Select注解中当参数为空则不添加该参数的判断

mybatis @Select注解中当参数为空则不添加该参数的判断

作者头像
一个会写诗的程序员
发布于 2018-08-17 03:33:01
发布于 2018-08-17 03:33:01
2.9K00
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public interface OrderMapper extends SqlMapper{

@Select("select * from tbl_order where room like #{room} and mydate like #{mydate}")
public List<Order> getbyroom(OrderPara op);

}

这样整个语句是写死的,必须有2个参数,在这种模式下,如何能实现根据room和mydate是否为空来动态的拼写sql语句 比如当mydate=""

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Select("select * from tbl_order where room like #{room} ")
public List<Order> getbyroom(OrderPara op);

如果用xml来配置语句的话,可以用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<when test="title != null">
and mydate= #{mydate}
</when>

如果是用@Select

这种 改如何做呢?

解决方案:

用script标签包围,然后像xml语法一样书写

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Select({"<script>",
    "SELECT * FROM tbl_order",
    "WHERE 1=1",
    "<when test='title!=null'>",
    "AND mydate = #{mydate}",
    "</when>",
    "</script>"})
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.12.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Mybatis-1】MyBatis注解版详解
pom依赖和yml配置文件以及相关数据见前文:SpringBoot系列(八):MyBatis之XML 配置版。 注解版与xml配置版的不同在于,注解版不再需要配置xml文件,直接在dao层接口中通过注解书写sql语句即可。
云深i不知处
2020/09/16
2K0
MyBatis从入门到精通(三)—MyBatis多表查询和注解开发
这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper
共饮一杯无
2022/11/28
5740
MyBatis从入门到精通(三)—MyBatis多表查询和注解开发
Mybatis的注解开发
修改MyBatis的核心配置文件,我们使用了注解替代的映射文件,所以我们只需要加载使用了注解的Mapper接口即可
乐心湖
2021/01/18
3280
Mybatis的注解开发
MyBatis —— 参数处理
指定参数名,多个参数还是封装一个map,但是此时key 使用的是@Param注解指定的值通过#{指定的key} 从map中获取指定的参数值
桑鱼
2020/03/18
6750
19-MyBatis注解开发
MyBatis同时支持注解开发模式,在面对简单的配置时,注解开发可以明显的减轻开发难度
Ywrby
2022/10/27
2670
MyBatis框架之第二篇
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
海仔
2019/10/22
8870
JAVAEE框架技术之10-myBatis注解式开发
注解开发只需要写mapper接口即可,无需再书写对应的xxMapper.xml映射文件
张哥编程
2024/12/13
970
JAVAEE框架技术之10-myBatis注解式开发
18-MyBatis多表操作
订单表中的userId表示标识用户的ID信息,若直接通过sql语句进行一对一查询,则可写作select * from orders o ,user u where o.userId=u.id ,得到如下查询结果
Ywrby
2022/10/27
2440
18-MyBatis多表操作
MyBatis--框架学习
mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精 去处理加载驱动、创建连接、创建statement等繁杂的过程。
花猪
2022/02/23
5840
MyBatis--框架学习
MyBatis-Plus联表查询(Mybatis-Plus-Join)
mybatis-plus作为mybatis的增强工具,简化了开发中的数据库操作。一旦遇到left join或right join的左右连接,还是得老老实实的打开xml文件,手写上一大段的sql语句。今天总结一下一款叫做mybatis-plus-join的工具(后面就简称mpj了),可以用类似mybatis-plus中QueryWrapper的方式来进行联表查询。
鱼找水需要时间
2023/02/16
8.7K0
MyBatis-Plus联表查询(Mybatis-Plus-Join)
Mybatis 从SQL注入到OGNL注入
动态 SQL 是 MyBatis 的强大特性之一,一般而言,如果不使用动态SQL来拼接SQL语句,是比较痛苦的,比如拼接时要确保不能漏空格,还要注意去掉列表最后一个列名的逗号等,但是利用动态 SQL,就可以彻底摆脱这种痛苦。
p4nda
2023/05/15
1.6K0
Mybatis 从SQL注入到OGNL注入
关于 MyBatis 我总结了 10 种通用的写法
foreach元素的属性主要有item,index,collection,open,separator,close。
逆锋起笔
2020/04/24
1.4K0
05_MyBatis动态SQL学习笔记
动态sql目的是为了解决查询条件不确定而存在的,条件判断使用的表达式为OGNL 表达式,常用的动态SQL有:<if> <where> <choose> <foreach>
全栈程序员站长
2021/07/13
3600
1 Mybatis 框架 & Mybatis初级进阶篇
MyBatis的中文官方 : https://mybatis.org/mybatis-3/zh/index.html
收心
2022/01/17
6120
1 Mybatis 框架 &  Mybatis初级进阶篇
MyBatis:复杂映射,配置深入
使用 #{arg0}-#{argn} 或者 #{param1}-#{paramn} 获取参数
RendaZhang
2020/09/08
1.6K0
MyBatis:复杂映射,配置深入
mybatis 详解(七)------一对一、一对多、多对多
  前面几篇博客我们用mybatis能对单表进行增删改查操作了,也能用动态SQL书写比较复杂的sql语句。但是在实际开发中,我们做项目不可能只是单表操作,往往会涉及到多张表之间的关联操作。那么我们如何
IT可乐
2018/01/04
6.7K0
mybatis 详解(七)------一对一、一对多、多对多
MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突。 一、准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSERT INTO orders(order_no, order_price) VALUES
一枝花算不算浪漫
2018/05/18
1.1K0
mybatis 详解(八)------ 懒加载
IT可乐
2018/01/04
1.3K1
mybatis 详解(八)------ 懒加载
Mybatis系列第7篇:各种查询详解
Mybatis系列目标:从入门开始开始掌握一个高级开发所需要的Mybatis技能。
路人甲Java
2020/02/11
7220
干货 | MyBatis的动态SQL
本文主要根据自己demo案例,详细介绍动态SQL的使用。基于官网,但比官网更详细。
子乾建建-Jeff
2020/06/29
1K0
干货 | MyBatis的动态SQL
相关推荐
【Mybatis-1】MyBatis注解版详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验