mybatis中if-else的嵌套具体用法是什么?
导读:今天这篇给大家分享的知识是“mybatis中if-else的嵌套具体用法是什么?”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,因此分享发大家做个参考,下文的讲解详细,步骤过程清晰,希望这篇“mybatis中if-else的嵌套具体...
今天这篇给大家分享的知识是“mybatis中if-else的嵌套具体用法是什么?”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,因此分享发大家做个参考,下文的讲解详细,步骤过程清晰,希望这篇“mybatis中if-else的嵌套具体用法是什么?”文章能帮助大家解决问题。
案例一:if-else
在mybatis的使用过程中,难免会存在使用if-else的逻辑,但是实际是没有这种语法的,提供了choose标签来替代这种语法
select id="selectUserByState" resultType="com.bz.model.entity.User"> SELECT * FROM user WHERE 1=1 choose> when test="state == 1"> AND name = #{ name1} /when> when test="state == 2"> AND name = #{ name2} /when> otherwise> AND name = #{ name3} /otherwise> /choose> /select>
案例二:if嵌套
在实际的编码过程中会对一些条件进行重复判断,并对内深入if判断,这时就可以使用if嵌套
select id="selectUserByState" resultType="com.bz.model.entity.User"> SELECT * FROM user WHERE if test=" gender!=null and gender!='' "> if test=" gender==male "> and name=#{ name} /if> /if> /select>
MyBatis中if和choose的嵌套
!-- public ListVadtaxShow> findList(VadtaxShow vadtaxShow); --> select id="findList" parameterType="com.cdqyzj_WC.Backstage.vaddedtax.domain.VaddeTax" resultType="com.cdqyzj_WC.Backstage.vaddedtax.domain.VaddeTax"> SELECT t.addedId,t.taxType,t.totalSales,t.outputTax,t.inputTax,t.entryAmount, t.amountTax,t.retentionTax, t.createTime, t.taxTime,t.comId,c.comName,c.comType FROM t_g_vaddedtax AS t JOIN t_ucompany AS c ON c.comId = t.comId where> 1=1 if test="comType != '' and comType != null"> and c.comType = #{ comType} /if> if test="taxTime != null and taxTime != ''"> and t.taxTime =#{ taxTime} /if> if test="taxType != null and taxType != '' "> and t.taxType =#{ taxType} /if> if test="comId != null and comId != '' and comId != 0 "> and t.comId =#{ comId} /if> if test="start_times != null and end_times != null"> choose> when test="middle_times != null"> and t.createTime in ('${ start_times} ','${ middle_times} ', '${ end_times} ' ) /when> otherwise> and t.createTime in ('${ start_times} ','${ end_times} ' ) /otherwise> /choose> /if> if test="orderBy != null and orderType != '' "> order by ${ orderBy} ${ orderType} /if> if test="pageSize != 0 "> limit ${ startRows} ,${ pageSize} /if> /where> /select>
功能实现之后反思:要不我不对“middle_times”判空?这样不就不用嵌套了吗?
!-- public ListVadtaxShow> findList(VadtaxShow vadtaxShow); --> select id="findList" parameterType="com.cdqyzj_WC.Backstage.vaddedtax.domain.VaddeTax" resultType="com.cdqyzj_WC.Backstage.vaddedtax.domain.VaddeTax"> SELECT t.addedId,t.taxType,t.totalSales,t.outputTax,t.inputTax,t.entryAmount, t.amountTax,t.retentionTax, t.createTime, t.taxTime,t.comId,c.comName,c.comType FROM t_g_vaddedtax AS t JOIN t_ucompany AS c ON c.comId = t.comId where> 1=1 if test="comType != '' and comType != null"> and c.comType = #{ comType} /if> if test="taxTime != null and taxTime != ''"> and t.taxTime =#{ taxTime} /if> if test="taxType != null and taxType != '' "> and t.taxType =#{ taxType} /if> if test="comId != null and comId != '' and comId != 0 "> and t.comId =#{ comId} /if> if test="start_times != null and end_times != null"> and t.createTime in ('${ start_times} ','${ middle_times} ', '${ end_times} ' ) /if> if test="orderBy != null and orderType != '' "> order by ${ orderBy} ${ orderType} /if> if test="pageSize != 0 "> limit ${ startRows} ,${ pageSize} /if> /where> /select>
现在大家对于mybatis中if-else的嵌套具体用法是什么?的内容应该都清楚了吧,希望大家阅读完这篇文章能有所收获。最后,想要了解更多mybatis中if-else的嵌套具体用法是什么?的知识,欢迎关注网络,网络将为大家推送更多相关知识的文章。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: mybatis中if-else的嵌套具体用法是什么?
本文地址: https://pptw.com/jishu/652212.html