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

mybatis框架xml下trim中的prefix與suffix等標(biāo)簽的用法

 更新時(shí)間:2021年07月13日 10:03:06   作者:徐林2333  
這篇文章主要介紹了mybatis框架xml下trim中的prefix與suffix等標(biāo)簽的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

trim中prefix與suffix等標(biāo)簽用法

1.prefix 前綴增加的內(nèi)容

2.suffix 后綴增加的內(nèi)容

3.prefixOverrides 前綴需要覆蓋的內(nèi)容,一般是第一個(gè)判斷條件前面的多余的結(jié)構(gòu),如:第一個(gè)判斷條件前面多了 ‘a(chǎn)nd'

select * from User where name='zhangsan' and age='20';
<select id='queryUser'>
        select * from User
        <trim prefix='where' prefixOverrides='and'>
            <if test="name != null and name != ''">
                name = #{name}
            </if>
            <if test="age !=null and age !=''">
                and age = #{age}
            </if>
        </trim>
<select>

第一個(gè)條件前面沒(méi)有任何符號(hào),第二個(gè)條件要加上and,否則sql語(yǔ)句會(huì)報(bào)錯(cuò)。很理想的狀態(tài)是第一個(gè)和第二個(gè)都有值,但是既然判斷,說(shuō)明也可能會(huì)沒(méi)有值,當(dāng)?shù)谝粋€(gè)name沒(méi)有值的時(shí)候,這個(gè)時(shí)候sql語(yǔ)句就會(huì)是 select * from User where and age='',很明顯這個(gè)sql語(yǔ)句語(yǔ)法存在問(wèn)題。

在這里標(biāo)簽屬性prefixOverrides就起作用了,它會(huì)讓前綴where覆蓋掉第一個(gè)and。覆蓋之后的是:select * from User where age='';

4.suffixOverrides 后綴需要覆蓋的內(nèi)容,一般是最后一個(gè)數(shù)據(jù)的后面符號(hào),如:set值的時(shí)候,最后一個(gè)值的后面多一個(gè)逗號(hào)‘,'

 <insert id="insertSelective" parameterType="org.javaboy.vhr.model.Salary">
        insert into salary
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">
                id,
            </if>
            <if test="basicSalary != null">
                basicSalary,
            </if>
            <if test="bonus != null">
                bonus,
            </if>
            <if test="lunchSalary != null">
                lunchSalary,
            </if>
            <if test="trafficSalary != null">
                trafficSalary,
            <if test="name != null">
                name,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">
                #{id,jdbcType=INTEGER},
            </if>
            <if test="basicSalary != null">
                #{basicSalary,jdbcType=INTEGER},
            </if>
            <if test="bonus != null">
                #{bonus,jdbcType=INTEGER},
            </if>
            <if test="lunchSalary != null">
                #{lunchSalary,jdbcType=INTEGER},
            </if>
            <if test="trafficSalary != null">
                #{trafficSalary,jdbcType=INTEGER},
            </if>
    		 <if test="name != null">
                #{name,jdbcType=VARCHAR},
            </if>
        </trim>
    </insert>

加了suffixOverrides=","

結(jié)果:

insert into salary (id,basicSalary,bonus,lunchSalary,trafficSalary,name) values (#{id},#{basicSalary},#{bonus},#{lunchSalary},#{trafficSalary},#{name})

不加suffixOverrides=","

結(jié)果:

insert into salary (id,basicSalary,bonus,lunchSalary,trafficSalary,name,) values (#{id},#{basicSalary},#{bonus},#{lunchSalary},#{trafficSalary},#{name},)

加了suffixOverrides=","的話,本例中最后一個(gè)條件中的逗號(hào)“,”會(huì)被后綴覆蓋掉

mybatis之 trim prefix="(" suffix=")"

1.如下所示

<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>

prefix:在trim標(biāo)簽內(nèi)sql語(yǔ)句加上前綴。

suffix:在trim標(biāo)簽內(nèi)sql語(yǔ)句加上后綴。

suffixOverrides:指定去除多余的后綴內(nèi)容,如:suffixOverrides=",",去除trim標(biāo)簽內(nèi)sql語(yǔ)句多余的后綴","。

prefixOverrides:指定去除多余的前綴內(nèi)容

2.下面是一個(gè)往購(gòu)物車表中插入數(shù)據(jù)的mybatis語(yǔ)句

<insert id="insert" parameterType="com.tortuousroad.groupon.cart.entity.Cart">
        insert into cart
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">
                id,
            </if>
            <if test="userId != null">
                user_id,
            </if>
            <if test="dealId != null">
                deal_id,
            </if>
            <if test="dealSkuId != null">
                deal_sku_id,
            </if>
            <if test="count != null">
                count,
            </if>
            <if test="createTime != null">
                create_time,
            </if>
            <if test="updateTime != null">
                update_time,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">
                #{id,jdbcType=BIGINT},
            </if>
            <if test="userId != null">
                #{userId,jdbcType=BIGINT},
            </if>
            <if test="dealId != null">
                #{dealId,jdbcType=BIGINT},
            </if>
            <if test="dealSkuId != null">
                #{dealSkuId,jdbcType=BIGINT},
            </if>
            <if test="count != null">
                #{count,jdbcType=INTEGER},
            </if>
            <if test="createTime != null">
                #{createTime,jdbcType=TIMESTAMP},
            </if>
            <if test="updateTime != null">
                #{updateTime,jdbcType=TIMESTAMP},
            </if>
        </trim>
    </insert>
suffixOverrides=","

執(zhí)行的sql語(yǔ)句也許是這樣的:insert into cart (id,user_id,deal_id,) values(1,2,1,);顯然是錯(cuò)誤的

指定之后語(yǔ)句就會(huì)變成insert into cart (id,user_id,deal_id) values(1,2,1);這樣就將“,”去掉了。

前綴也是一個(gè)道理這里就不說(shuō)了。

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

相關(guān)文章

  • java實(shí)現(xiàn)簡(jiǎn)單租車系統(tǒng)

    java實(shí)現(xiàn)簡(jiǎn)單租車系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單租車系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Java中instance的用法詳解

    Java中instance的用法詳解

    這篇文章主要介紹了Java中instance的用法詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Java螺旋矩陣處理方法詳解

    Java螺旋矩陣處理方法詳解

    螺旋矩陣是指一個(gè)呈螺旋狀的矩陣,它的數(shù)字由第一行開始到右邊不斷變大,向下變大,向左變大,向上變大,如此循環(huán)。利用java實(shí)現(xiàn)的螺旋矩陣,當(dāng)輸入N之后,會(huì)自動(dòng)打印出螺旋矩陣
    2022-09-09
  • 全面解析Java main方法

    全面解析Java main方法

    main方法是我們學(xué)習(xí)Java語(yǔ)言學(xué)習(xí)的第一個(gè)方法,也是每個(gè)java使用者最熟悉的方法,每個(gè)Java應(yīng)用程序都必須有且僅有一個(gè)main方法。這篇文章通過(guò)實(shí)例代碼給大家介紹java main方法的相關(guān)知識(shí),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • mybatis-plus數(shù)據(jù)權(quán)限實(shí)現(xiàn)代碼

    mybatis-plus數(shù)據(jù)權(quán)限實(shí)現(xiàn)代碼

    這篇文章主要介紹了mybatis-plus數(shù)據(jù)權(quán)限實(shí)現(xiàn),結(jié)合了mybatis-plus的插件方式,做出了自己的注解方式的數(shù)據(jù)權(quán)限,雖然可能存在一部分的局限性,但很好的解決了我們自己去解析SQL的功能,需要的朋友可以參考下
    2023-06-06
  • Java矢量隊(duì)列Vector使用示例

    Java矢量隊(duì)列Vector使用示例

    Vector類實(shí)現(xiàn)了一個(gè)動(dòng)態(tài)數(shù)組。和ArrayList很相似,但是兩者是不同的Vector是同步訪問(wèn)的;Vector包含了許多傳統(tǒng)的方法,這些方法不屬于集合框架
    2023-01-01
  • SpringBoot SSO輕松實(shí)現(xiàn)(附demo)

    SpringBoot SSO輕松實(shí)現(xiàn)(附demo)

    這篇文章主要介紹了SpringBoot SSO輕松實(shí)現(xiàn)(附demo),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • SpringBoot項(xiàng)目配置文件注釋亂碼的問(wèn)題解決方案

    SpringBoot項(xiàng)目配置文件注釋亂碼的問(wèn)題解決方案

    這篇文章主要介紹了SpringBoot 項(xiàng)目配置文件注釋亂碼的問(wèn)題解決方案,文中通過(guò)圖文結(jié)合的方式給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • Java基礎(chǔ)之?dāng)?shù)組的初始化過(guò)程

    Java基礎(chǔ)之?dāng)?shù)組的初始化過(guò)程

    Java數(shù)組分為靜態(tài)和動(dòng)態(tài)初始化,靜態(tài)初始化中,程序員設(shè)定元素初始值,系統(tǒng)決定長(zhǎng)度;動(dòng)態(tài)初始化中,程序員設(shè)定長(zhǎng)度,系統(tǒng)提供初始值,數(shù)組初始化后長(zhǎng)度固定,存儲(chǔ)在堆內(nèi)存中,數(shù)組變量在棧內(nèi)存指向堆內(nèi)存數(shù)組對(duì)象,基本類型數(shù)組存儲(chǔ)數(shù)據(jù)值,引用類型數(shù)組存儲(chǔ)對(duì)象引用
    2024-10-10
  • Spring?Aware接口示例代碼詳解

    Spring?Aware接口示例代碼詳解

    Spring的依賴注入的最大亮點(diǎn)是所有的Bean對(duì)Spring容器的存在是沒(méi)有意識(shí)的,我們可以將Spring容器換成其他的容器,Spring容器中的Bean的耦合度因此也是極低的,本文給大家介紹Spring?Aware接口示例代碼詳解,感興趣的朋友一起看看吧
    2022-02-02

最新評(píng)論

湟源县| 聂拉木县| 共和县| 祁东县| 新巴尔虎左旗| 澄城县| 德昌县| 岐山县| 常熟市| 邹城市| 宜章县| 若尔盖县| 红原县| 聂拉木县| 德兴市| 长丰县| 田阳县| 桂平市| 洪湖市| 峡江县| 南昌县| 溧阳市| 沙湾县| 汉源县| 青州市| 沙雅县| 渝北区| 兴山县| 中卫市| 夏邑县| 定南县| 都江堰市| 昔阳县| 西和县| 莆田市| 鹤壁市| 阳泉市| 北碚区| 西贡区| 平邑县| 威信县|