最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis中的多重if?條件判斷

 更新時間:2022年03月11日 10:11:42   作者:入門小白  
這篇文章主要介紹了mybatis中的多重if?條件判斷,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

mybatis 多重if 條件判斷

要注意的是

當(dāng)指定某種情況的時候,條件需要添加 toString() 方法

mybatis常用判斷語法(標(biāo)簽)

作為java開發(fā),我們常用的判斷有if、switch語句,其實在MyBatis中也有對應(yīng)的標(biāo)簽,用于動態(tài)生成sql語句。

if判斷

<where>
? ? <if test="null != statusCode and 0 != statusCode">
? ? ? ? AND b.STATUS_CODE = #{statusCode, jdbcType=VARCHAR}
? ? </if>
</where>

一般來說,很多程序猿朋友會在<if>標(biāo)簽前增加WHERE 1=1語句,但其實只需要像上面代碼中增加<where>標(biāo)簽包裹所有<if>語句,<if>內(nèi)語句前面都有and或者or關(guān)鍵字就行:

  • MyBatis會自動判斷所有條件不滿足時,不添加where語句;
  • 如果有多判斷語句,并且滿足一個條件以上時,會把第一條滿足的(如果第一條有and或者or關(guān)鍵字時)and或者or關(guān)鍵字刪除;

choose判斷

<choose>
?? ?<when test="5 == queryType">
?? ??? ?CASE WHEN statusCode IN (1,6) THEN 1 ELSE 2 END,createTime DESC
?? ?</when>
?? ?<when test="1 != queryType and 9 != queryType">
?? ??? ?createTime DESC
?? ?</when>
?? ?<otherwise>
?? ??? ?<choose>
?? ??? ??? ?<when test="null == orderType or 1 == orderType">
?? ??? ??? ??? ?auditTime
?? ??? ??? ?</when>
?? ??? ??? ?<when test="2 == orderType">
?? ??? ??? ??? ?downloadCount
?? ??? ??? ?</when>
?? ??? ??? ?<when test="3 == orderType">
?? ??? ??? ??? ?browseCount
?? ??? ??? ?</when>
?? ??? ??? ?<otherwise>
?? ??? ??? ??? ?is666Count
?? ??? ??? ?</otherwise>
?? ??? ?</choose>
?? ??? ?<if test="null == orderMode or 1 == orderMode">
?? ??? ??? ?DESC
?? ??? ?</if>
?? ?</otherwise>
</choose>

上面的代碼使用了標(biāo)簽嵌套特性,用于復(fù)雜條件判斷。

choose判斷跟if else語句作用相同,起到根據(jù)條件執(zhí)行不同分支邏輯的作用。

而otherwise跟多個if else中最后一個else的作用相同,在以上條件都不滿足時,執(zhí)行otherwise中的邏輯。 

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關(guān)文章

最新評論

昌黎县| 上栗县| 太和县| 岱山县| 扎鲁特旗| 安新县| 沿河| 开远市| 日喀则市| 射洪县| 根河市| 昌乐县| 巴青县| 彭阳县| 方山县| 宁城县| 朝阳市| 石台县| 白水县| 五峰| 朔州市| 林西县| 房山区| 额尔古纳市| 赞皇县| 运城市| 朔州市| 屏东市| 平山县| 石林| 三原县| 临湘市| 天台县| 精河县| 营山县| 东山县| 五台县| 永寿县| 汤原县| 景宁| 蕲春县|