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
