首页 > 作文

解决Mybatis中foreach嵌套使用if标签对象取值的问题

更新时间:2023-04-04 22:41:38 阅读: 评论:0

新闻阅读目录
foreach嵌套使用if标签对象取值问题大体格式解决办法代码如下mybatis if 语句嵌套要求

foreach嵌套使用if标签对象取值问题

最近做项目过程中,涉及到需要在 mybatis 中 使用 foreach 进行循环读取传入的查询条件,动态拼接sql语句,接口传入的查询条件格式:{“advancearchlist”:[{“archtype”:10,”archtext”:”12″}]} ,根据我定义的参数格式,需要在 mybatis中动态去循环读取 advancearchlist 集合中的json对象,并根据 json对象中的 archtype 做不同的处理,需要在 foreach 中嵌套 if 标签进行判断使用。

大体格式

    <foreach collection="advancearchlist" item="item" index="index" 公共雕塑>      <if test="xxx == 10 ">        and abc like concat('%', ddd, '%')      </if>    </foreach>

因为当前 foreach 中获取到的 item 是一个json对象,涉及到在 if 标签中获取当前productionmanager对象中指定属性的值,一时脑抽,没有想起来取值办法,咨询万能的度娘没有得到满意的回复,经过自己傻瓜式的尝试,终于找到了取值方法,特此记录下:

解决办法

mybatis 在 foreach 标签中使用 if 标签获取对象属性方法:

直接通过 对象.属性 的方式获取!!!!对,你没看错,就是直接通过 对象.属性 的方式获取!!!

例如:当前foreach 循环获取的对象是 item,想要获取对象中的 archtype ,直接就是 item.archtype 即可……

代码如下

    <foreach collect劝学古今异义ion="advancearchlist" item="item" index="index" >      <if test="item.archtype == 10 ">        and abc like concat('%', #{item.archtext}, '%')      </if>    </foreach>

mybatis if 语句嵌套

在使用mybatis的时候,可以在 if 标签下面加上if标签。

比如要对这个sql语句进行改进。

lect a.* from emp ainner join dept bon a.deptno = b.nowhere b.place= #{place}

要求

如果 传入的 地点 是 north korea 那么 符合 a中的条件也可以。

a.male = 'm' or a.age bewteen 20 and 30

where语句可以这么写

lect * from emp e<where>  <if test="_parameter.place != null and _parameter.place != '' ">    and    <if test="_parameter.place == 'north korea' "> ( </if>    b.place = #{place}    <if test="_parameter.place == 'north korea' ">    or a.male = 'm' or a.ge between 20 and 30 )    </if>  </if团结协作的谚语></where>

注意里面的括号。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 22:41:37,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/3570bbdeba8566bc505b91baa9934d82.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:解决Mybatis中foreach嵌套使用if标签对象取值的问题.doc

本文 PDF 下载地址:解决Mybatis中foreach嵌套使用if标签对象取值的问题.pdf

标签:嵌套   标签   对象   语句
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图