欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MyBatis解決Update動(dòng)態(tài)SQL逗號(hào)的問題

 更新時(shí)間:2022年01月21日 10:51:09   作者:qq_16291159  
這篇文章主要介紹了MyBatis解決Update動(dòng)態(tài)SQL逗號(hào)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Update動(dòng)態(tài)SQL逗號(hào)問題

最做項(xiàng)目遇到以下情況,MyBatis中需要?jiǎng)討B(tài)拼接Update,由于之前忙著趕項(xiàng)目,就直接照著下面的這樣寫,結(jié)果發(fā)現(xiàn)系統(tǒng)出現(xiàn)了異常,原來這樣寫如果 id=null就會(huì)出錯(cuò)

UPDATE ? ? TABLE
? ? ? ? ?SET ??
? ? ? ?<if test="id!=null">
? ? ? ? id= #{id,jdbcType=INTEGER}?
? ? ? ?</if>?
? ? ? <if test"name!=null">?
? ? ? ? ,name = #{name,jdbcType=VARCHAR}
? ? ?</if>?
where id = #{id,jdbcType=INTEGER}

于是我查閱了網(wǎng)上的Mybatis的API和官方文檔,找到了如下

解決辦法

UPDATE ? ? TABLE
? ? ? ?<trim prefix="set" suffixOverrides=","> ?
? ? ? ?<if test="id!=null">
? ? ? ? id= #{id,jdbcType=INTEGER},
? ? ? ?</if>
? ? ? <if test"name!=null">
? ? ? ? name = #{name,jdbcType=VARCHAR},
? ? ?</if>
? ? ?</trim>
where id = #{id,jdbcType=INTEGER}

<trim>節(jié)點(diǎn)標(biāo)簽:

trim主要功能是可以在Trim包含的內(nèi)容前加上某些前綴(prefix),也可以在Trim包含的內(nèi)容之后加上某些后綴(suffix)

還可以把Trim包含內(nèi)容的首部的某些內(nèi)容忽略掉(prefixOverrides) ,也可以把Trim包含的內(nèi)容的尾部的某些內(nèi)容忽略掉(suffixOverrides)

<trim prefix="set" suffixOverrides=",">?

這行代碼的意思是:在前面加上set  去掉最后的逗號(hào)?。?!

備注方法2:把更新條件<if>標(biāo)簽內(nèi)的內(nèi)容,放在<set></set>標(biāo)簽中

Mapper(Update)逗號(hào)位置

<update id="update" parameterType="map">
        update t_role
        <set> 
        <if test="name != null and name !=''">
            name=#{name},
        </if>
        <if test="msg != null and msg !=''">
            msg=#{msg},
        </if>
        <if test="type != null and type !=''">
            type=#{type},
        </if>
        <if test="creator_id != null and creator_id !=''">
            creator_id=#{creator_id},
        </if>
        <if test="level != null and level !=''">
            level=#{level}
        </if></set>
     where id=#{id}
</update>

使用 <set></set>可以智能去掉最后一個(gè)逗號(hào),十分方便!

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

相關(guān)文章

  • 解決IDEA開發(fā)工具右側(cè)沒有Maven工具欄的問題

    解決IDEA開發(fā)工具右側(cè)沒有Maven工具欄的問題

    這篇文章主要給大家解決了IDEA開發(fā)工具右側(cè)沒有Maven工具欄的問題,文中有詳細(xì)的解決步驟,如果有遇到一樣問題的小伙伴,可以參考閱讀本文
    2023-09-09
  • JAVA注解代碼詳解一篇就夠了

    JAVA注解代碼詳解一篇就夠了

    這篇文章主要介紹了Java注解詳細(xì)介紹,本文講解了Java注解是什么、Java注解基礎(chǔ)知識(shí)、Java注解類型、定義Java注解類型的注意事項(xiàng)等內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • SpringBoot整合activemq的案例代碼

    SpringBoot整合activemq的案例代碼

    ActiveMQ是消息隊(duì)列技術(shù),為解決高并發(fā)問題而生,本文通過案例代碼給大家介紹pringBoot整合activemq的詳細(xì)過程,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • Spring框架設(shè)值注入操作實(shí)戰(zhàn)案例分析

    Spring框架設(shè)值注入操作實(shí)戰(zhàn)案例分析

    這篇文章主要介紹了Spring框架設(shè)值注入操作,結(jié)合具體實(shí)例形式分析了spring框架設(shè)值注入相關(guān)實(shí)現(xiàn)與使用方法,需要的朋友可以參考下
    2019-11-11
  • 在Spring Boot中如何使用log4j記錄日志

    在Spring Boot中如何使用log4j記錄日志

    這篇文章主要介紹如何在spring boot中引入log4j,以及一些基礎(chǔ)用法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • Java 指定微信好友自動(dòng)發(fā)送消息的實(shí)現(xiàn)示例

    Java 指定微信好友自動(dòng)發(fā)送消息的實(shí)現(xiàn)示例

    這篇文章主要介紹了Java 指定微信好友自動(dòng)發(fā)送消息的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • SpringBoot集成SpringMVC的方法示例

    SpringBoot集成SpringMVC的方法示例

    這篇文章主要介紹了SpringBoot集成SpringMVC的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java實(shí)現(xiàn)發(fā)紅包功能

    Java實(shí)現(xiàn)發(fā)紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)發(fā)紅包功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 詳解MyBatis-Plus updateById方法更新不了空字符串/null解決方法

    詳解MyBatis-Plus updateById方法更新不了空字符串/null解決方法

    這篇文章主要介紹了詳解MyBatis-Plus updateById方法更新不了空字符串/null解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java多文件以ZIP壓縮包導(dǎo)出的實(shí)現(xiàn)方法

    Java多文件以ZIP壓縮包導(dǎo)出的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了Java多文件以ZIP壓縮包導(dǎo)出的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評(píng)論