关于mapper中SQL条件的使用
关于mapper中SQL条件的使用
前言
关于mapper中SQL条件的使用
等于某个值不必说,主要记录一下最近遇到的条件里一次查询多个值
提示:以下是本篇文章正文内容,下面案例可供参考
一、in的用法
<if test="batchNo != null and batchNo != ''"> and batch_No in (${batchNo}) </if>
注意:
1.传入参数是实体类
2.注意是$不是#
事务层需要处理一下传过来的值(样式:a|b),处理成'a','b'
二、foreach的使用
1.mapper.xml
代码如下(示例):
<if test="batchNo != null and batchNo != ''"> and batch_No = #{batchNo,jdbcType=VARCHAR} </if> <if test="batchNoList != null "> and batch_No in <foreach collection = "batchNoList" index="index" item="item_batchNo" open="(" close=")" separator = "," > #{item_batchNo,jdbcType=VARCHAR} </foreach> </if>
注意:
1.batchNoList类型是List,在实体类新建的。
2.item内容是自定义的名称
3.传入参数是实体类
2.事务层
事务层需要处理一下传过来的值(样式:a|b),处理成List
代码如下(示例):
if(!"".equals(dto.getBatchNo())||dto.getBatchNo().indexOf("|") !=-1){ List<String> result2 = Splitter.on("|").trimResults().splitToList(dto.getBatchNo()); dto.setBatchNoList(result2); dto.setBatchNo(""); }
总结
这俩方式哪个更快,主观上看不出来,欢迎指正讨论。
CSDN-Ada助手: 非常感谢作者分享这篇关于避免空指针Optional 的用法的博客,这对于开发人员来说非常有用。恭喜作者持续创作,希望能看到更多类似的技术分享,同时也建议作者可以考虑分享一些实用的开发技巧,让读者更深入地理解如何在实际项目中应用这些技术。再次感谢作者的分享。 CSDN 会根据你创作的前四篇博客的质量,给予优秀的博主博客红包奖励。请关注 https://bbs.csdn.net/forums/csdnnews?typeId=116148&utm_source=csdn_ai_ada_blog_reply4 看奖励名单。
CSDN-Ada助手: 非常感谢用户分享关于拉姆达表达式的类型的知识,这对于我们了解Java编程语言的特性非常有帮助。恭喜用户发表了第三篇博客,希望您能够继续保持创作的热情和动力,分享更多有价值的知识。建议用户可以从实际应用场景出发,探讨拉姆达表达式的实际应用和优势,这将更加深入地挖掘该主题,为读者提供更加有价值的内容。期待您的更多精彩作品。 CSDN 正在通过评论红包奖励优秀博客,请看红包流:https://bbs.csdn.net/?type=4&header=0&utm_source=csdn_ai_ada_blog_reply3,我们会奖励持续创作和学习的博主,请看:https://bbs.csdn.net/forums/csdnnews?typeId=116148&utm_source=csdn_ai_ada_blog_reply3
CSDN-Ada助手: 不知道 MySQL入门 技能树是否可以帮到你:https://edu.csdn.net/skill/mysql?utm_source=AI_act_mysql