mybatis update set 多個(gè)字段實(shí)例
我就廢話不多說了,大家還是直接看代碼吧~
<update id="updateCustomer" parameterType="com.entrym.domain.Customer">
UPDATE customer set
<if test="name!=null">name=#{name,jdbcType=VARCHAR},</if>
<if test="role!=null">role=#{role,jdbcType=VARCHAR},</if>
<if test="userId != null">user_id = #{userId,jdbcType=INTEGER},</if>
<if test="qq != null">qq = #{qq,jdbcType=VARCHAR},</if>
<if test="mobile != null">mobile = #{mobile,jdbcType=VARCHAR}</if>
WHERE id =#{id,jdbcType=BIGINT}
如果上面的mobile字段為null,執(zhí)行下面的SQL語句
UPDATE customer set name=?,role=?,userId=?,qq=?, where id=?
where 前面有逗號(hào)“,”就會(huì)報(bào)錯(cuò)
使用trim可以刪掉最后字段的逗號(hào)“,”
set已被包含在trim中,所以不用重復(fù)寫了:
<update id="updateCustomer" parameterType="com.entrym.domain.Customer">
UPDATE customer
<trim prefix="set" suffixOverrides=",">
<if test="claimTime!=null">claim_time=#{claimTime,jdbcType=VARCHAR},</if>
<if test="claimState!=null">claim_state=#{claimState,jdbcType=INTEGER},</if>
<if test="name!=null">name=#{name,jdbcType=VARCHAR},</if>
<if test="role!=null">role=#{role,jdbcType=VARCHAR},</if>
<if test="platformAccount!=null">platform_account=#{platformAccount,jdbcType=VARCHAR},</if>
<if test="collaborateTime!=null">collaborate_time=#{collaborateTime,jdbcType=VARCHAR},</if>
<if test="collaborateState!=null">collaborate_state=#{collaborateState,jdbcType=INTEGER},</if>
<if test="userId != null">user_id = #{userId,jdbcType=INTEGER},</if>
<if test="qq != null">qq = #{qq,jdbcType=VARCHAR},</if>
<if test="mobile != null">mobile = #{mobile,jdbcType=VARCHAR}</if>
</trim>
WHERE id =#{id,jdbcType=BIGINT}
</update>
轉(zhuǎn)義字符:
< 小于號(hào) <
> 大于號(hào) >
& 和 &
' 單引號(hào) '
" 雙引號(hào) "
補(bǔ)充:Mybatis中update時(shí)set和if的用法

update時(shí)set和if的用法 每個(gè)修改都加逗號(hào) set能夠智能的去掉最后一個(gè)逗號(hào)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Java?IO流—異常及捕獲異常處理?try…catch…finally
這篇文章主要介紹了Java?IO流—異常及捕獲異常處理?try…catch…finally,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
SpringBoot實(shí)現(xiàn)接口參數(shù)加密解密的示例代碼
加密解密本身并不是難事,問題是在何時(shí)去處理?SpringMVC?中給我們提供了?ResponseBodyAdvice?和?RequestBodyAdvice,利用這兩個(gè)工具可以對(duì)請(qǐng)求和響應(yīng)進(jìn)行預(yù)處理,非常方便。廢話不多說,我們一起來學(xué)習(xí)一下2022-09-09
activiti實(shí)現(xiàn)員工請(qǐng)假流程解析
這篇文章主要介紹了activiti實(shí)現(xiàn)員工請(qǐng)假流程解析,本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Java中基于推、拉模式的sentinel規(guī)則持久化詳解
這篇文章主要介紹了Java中基于推、拉模式的sentinel規(guī)則持久化詳解,推模式是sentinelDashboard?把規(guī)則推給Nacos,Nacos監(jiān)聽規(guī)則的變化推給微服務(wù),拉模式是sentinelDashboard?把規(guī)則直接給微服務(wù),?Nacos定時(shí)的同步微服務(wù)端的規(guī)則,需要的朋友可以參考下2023-09-09
Java中synchronized關(guān)鍵字引出的多種鎖 問題
synchronized關(guān)鍵字是JAVA中常用的同步功能,提供了簡單易用的鎖功能。這篇文章主要介紹了Java中synchronized關(guān)鍵字引出的多種鎖問題,需要的朋友可以參考下2019-07-07
IDEA使用技巧之如何將本地項(xiàng)目和git遠(yuǎn)程項(xiàng)目關(guān)聯(lián)
這篇文章主要介紹了IDEA使用技巧之如何將本地項(xiàng)目和git遠(yuǎn)程項(xiàng)目關(guān)聯(lián)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
SpringBoot?整合?ElasticSearch操作各種高級(jí)查詢搜索
這篇文章主要介紹了SpringBoot?整合?ES?進(jìn)行各種高級(jí)查詢搜索的實(shí)踐記錄,本文主要圍繞?SpringBoot?整合?ElasticSearch?進(jìn)行各種高級(jí)查詢的介紹,需要的朋友可以參考下2022-06-06

