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

mybatis中<if>標(biāo)簽bool值類型為false判斷方法

 更新時(shí)間:2019年08月08日 09:21:15   作者:java歐陽豐  
這篇文章主要給大家介紹了關(guān)于mybatis中<if>標(biāo)簽bool值類型為false判斷方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

昨天實(shí)現(xiàn)一個(gè)功能,根據(jù)文章的id或者別名查找文章。

起初采用mybatis的Example進(jìn)行查詢,對(duì)參數(shù)artName進(jìn)行判斷,如果是純數(shù)字就byId查詢,否則就by別名。由于查詢文章的同時(shí),需要關(guān)聯(lián)查詢文章分類標(biāo)簽,所以選擇采用select語句映射的方式查詢,但又不想寫兩個(gè)查詢方法,就使用了mybatis中動(dòng)態(tài)sql。

/**
 * 查詢文章
 * @param artName id 或 別名
 * @param byId 如果是 true 則按照id查詢
 *    否則 按照別名查詢
 * @return
 */
public Article selectByArtName(@Param(value = "artName") String artName,
       @Param(value = "byId") Boolean byId);

mapper中定義了一個(gè)方法,有artName和byId兩個(gè)參數(shù),artName 表示id 或 別名,byId表示是否通過id查詢。
對(duì)byId Boolean值進(jìn)行判斷時(shí),出現(xiàn)false值無效的情況,在百度了一圈發(fā)現(xiàn),普遍采用

<if test="byId != null">
  a.id = #{artName}
</if>

這種方式,當(dāng)byId=true時(shí)正常執(zhí)行,但為false時(shí)不生效。后采用<choose>標(biāo)簽

<choose>
  <when test="byId">
    a.id = #{artName}
  </when>
  <otherwise>
    a.alias = #{artName}
  </otherwise>
</choose>

byId本身是bool值,不用進(jìn)行判斷。

注意: byId不用加#{},不然false也會(huì)無效,如果加了#{}, 在與其他值進(jìn)行比較時(shí),
如: #{byId} == true 會(huì)報(bào)空指針錯(cuò)誤,如果寫成#{byId} == 'true'   會(huì)報(bào)Linkhashmap無法轉(zhuǎn)換成String類型錯(cuò)誤。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 從最基本的Java工程搭建SpringMVC+SpringDataJPA+Hibernate

    從最基本的Java工程搭建SpringMVC+SpringDataJPA+Hibernate

    本文會(huì)介紹從一個(gè)最基本的java工程,到Web工程,到集成Spring、SpringMVC、SpringDataJPA+Hibernate,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • SpringBoot實(shí)現(xiàn)初始化的三種策略模式

    SpringBoot實(shí)現(xiàn)初始化的三種策略模式

    本文主要介紹了SpringBoot實(shí)現(xiàn)初始化的三種策略模式,包括默認(rèn)初始化策略、懶加載初始化策略和自定義初始化策略,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12
  • Struts2學(xué)習(xí)筆記(9)-Result配置全局結(jié)果集

    Struts2學(xué)習(xí)筆記(9)-Result配置全局結(jié)果集

    這篇文章主要介紹Struts2中使用Result配置全局結(jié)果集的方法,希望能給大家做一個(gè)參考。
    2016-06-06
  • springboot rabbitmq整合rabbitmq之消息持久化存儲(chǔ)問題

    springboot rabbitmq整合rabbitmq之消息持久化存儲(chǔ)問題

    這篇文章主要介紹了springboot rabbitmq整合rabbitmq之消息持久化存儲(chǔ)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java的枚舉,注解和反射(二)

    Java的枚舉,注解和反射(二)

    今天小編就為大家分享一篇關(guān)于Java枚舉,注解與反射原理說明,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2021-07-07
  • Java MapStruct解了對(duì)象映射的毒

    Java MapStruct解了對(duì)象映射的毒

    這篇文章主要介紹了MapStruct解了對(duì)象映射的毒,對(duì)MapStruct感興趣的同學(xué),可以參考下
    2021-04-04
  • Mybatis foreach用法解析--對(duì)于list和array

    Mybatis foreach用法解析--對(duì)于list和array

    這篇文章主要介紹了Mybatis foreach用法解析--對(duì)于list和array,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringBoot與spring security的結(jié)合的示例

    SpringBoot與spring security的結(jié)合的示例

    這篇文章主要介紹了SpringBoot與spring security的結(jié)合的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • java 題解LeetCode38外觀數(shù)列示例

    java 題解LeetCode38外觀數(shù)列示例

    這篇文章主要為大家介紹了java 題解LeetCode38外觀數(shù)列示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Springboot啟動(dòng)原理和自動(dòng)配置原理解析

    Springboot啟動(dòng)原理和自動(dòng)配置原理解析

    這篇文章主要介紹了Springboot啟動(dòng)原理和自動(dòng)配置原理解析,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04

最新評(píng)論

红原县| 濉溪县| 德州市| 尚志市| 百色市| 乌恰县| 彰化县| 都安| 东丽区| 宣武区| 鞍山市| 梨树县| 临江市| 贡山| 玉溪市| 贵溪市| 无为县| 右玉县| 金塔县| 常宁市| 新巴尔虎右旗| 绵阳市| 长乐市| 延庆县| 开江县| 武夷山市| 五指山市| 高州市| 赤峰市| 四川省| 尚义县| 阳山县| 大化| 邵阳县| 张北县| 洞口县| 新营市| 常山县| 巫溪县| 成安县| 张家港市|