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

Mybatis批量插入和批量更新失敗問題

 更新時間:2024年08月19日 10:13:03   作者:一棵星  
這篇文章主要介紹了Mybatis批量插入和批量更新失敗問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

背景

Mybatis在執(zhí)行批量插入(方式二)和批量更新操作時,如果連接參數(shù)allowMultiQueries=false(默認),會批量操作失敗,而且sql語句copy出來運行正常

報錯如下圖:

如何解決此類問題

在設(shè)置數(shù)據(jù)庫連接時,添加allowMultiQueries=true

spring:
    datasource:
        url: jdbc:mysql://localhost:3306/db-test?allowMultiQueries=true

allowMultiQueries 參數(shù)

allowMultiQueries 是 MySQL 數(shù)據(jù)庫連接參數(shù)之一,用于指示是否允許在單個查詢中執(zhí)行多個 SQL 語句。

如果設(shè)置為 true,則允許執(zhí)行多個 SQL 語句,以分號 ; 分隔。

這在某些情況下可能會導致安全風險,因為它可能會受到 SQL 注入攻擊的影響。

因此,默認情況下,allowMultiQueries 通常被設(shè)置為 false,以提高安全性。

Mybatis批量插入

方式一,單條SQL插入,allowMultiQueries=false,不會報錯

void batchInsert(@Param("list") List<UserInfo> list);
<insert id="batchInsert">
     insert into t_user_info
     <trim prefix="(" suffix=")" suffixOverrides=",">
         <if test="list[0].username != null">
             username,
         </if>
         <if test="list[0].pwd != null">
             pwd,
         </if>
         <if test="list[0].createTime != null">
             create_time,
         </if>
     </trim>
     values
     <foreach collection="list" item="item" index="index" separator=",">
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="item.username != null">
                 #{item.username},
             </if>
             <if test="item.pwd != null">
                 #{item.pwd},
             </if>
             <if test="item.createTime != null">
                 #{item.createTime},
             </if>
         </trim>
     </foreach>
 </insert>

方式二,多條SQL插入,allowMultiQueries=false,會報錯

void batchInsert(@Param("list") List<UserInfo> list);
<insert id="batchInsert">
    <foreach collection="list" item="item" index="index" separator=";">
        insert into t_user_info
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="item.username != null">
                username,
            </if>
            <if test="item.pwd != null">
                pwd,
            </if>
            <if test="item.createTime != null">
                create_time,
            </if>
        </trim>
        values
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="item.username != null">
                #{item.username},
            </if>
            <if test="item.pwd != null">
                #{item.pwd},
            </if>       
            <if test="item.createTime != null">
                #{item.createTime},
            </if>
        </trim>
    </foreach>
</insert>

Mybatis批量更新,allowMultiQueries=false,會報錯

void batchUpdate(@Param("list") List<UserInfo> list);
<update id="batchUpdate">
    <foreach collection="list" item="item" index="index" open="" close="" separator=";">
        update t_user_info
        <set>
            <if test="item.username != null">
                username = #{item.username},
            </if>
            <if test="item.pwd != null">
                pwd = #{item.pwd},
            </if>
            <if test="item.updateTime != null">
                update_time = #{item.updateTime},
            </if>
        </set>
        where id = #{item.id}
    </foreach>
</update>

總結(jié)

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

相關(guān)文章

  • Java 生成圖片驗證碼3種方法(字母、加減乘除、中文)

    Java 生成圖片驗證碼3種方法(字母、加減乘除、中文)

    這篇文章主要介紹了Java 生成圖片驗證碼3種方法(字母、加減乘除、中文),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • mybatis中關(guān)于type-aliases-package的使用

    mybatis中關(guān)于type-aliases-package的使用

    這篇文章主要介紹了mybatis中關(guān)于type-aliases-package的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • springboot集成nacos無法動態(tài)獲取nacos配置的問題

    springboot集成nacos無法動態(tài)獲取nacos配置的問題

    這篇文章主要介紹了springboot集成nacos無法動態(tài)獲取nacos配置的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • SpringBoot靜態(tài)資源目錄訪問

    SpringBoot靜態(tài)資源目錄訪問

    今天小編就為大家分享一篇關(guān)于SpringBoot靜態(tài)資源目錄訪問,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • SpringBoot發(fā)送異步郵件流程與實現(xiàn)詳解

    SpringBoot發(fā)送異步郵件流程與實現(xiàn)詳解

    這篇文章主要介紹了SpringBoot發(fā)送異步郵件流程與實現(xiàn)詳解,Servlet階段郵件發(fā)送非常的復雜,如果現(xiàn)代化的Java開發(fā)是那個樣子該有多糟糕,現(xiàn)在SpringBoot中集成好了郵件發(fā)送的東西,而且操作十分簡單容易上手,需要的朋友可以參考下
    2024-01-01
  • java通過證書訪問etcd的實現(xiàn)步驟

    java通過證書訪問etcd的實現(xiàn)步驟

    Etcd提供了多種語言的客戶端庫,本文主要介紹了java通過證書訪問etcd的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05
  • mybatis中使用not?in與?in的寫法說明

    mybatis中使用not?in與?in的寫法說明

    這篇文章主要介紹了mybatis中使用not?in與?in的寫法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java壓縮文件操作詳解

    Java壓縮文件操作詳解

    這篇文章主要為大家詳細介紹了如何利用Java語言進行壓縮文件操作,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-08-08
  • 使用spring?security?BCryptPasswordEncoder接入系統(tǒng)

    使用spring?security?BCryptPasswordEncoder接入系統(tǒng)

    這篇文章主要介紹了使用spring?security?BCryptPasswordEncoder接入系統(tǒng)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • java String.join()的使用小結(jié)

    java String.join()的使用小結(jié)

    String.join()是Java 8引入的一個實用方法,用于將多個字符串按照指定分隔符連接成一個字符串,本文主要介紹了java String.join()的使用小結(jié),感興趣的可以了解一下
    2025-03-03

最新評論

凌源市| 凯里市| 周至县| 蒙阴县| 共和县| 林西县| 兴安盟| 沾益县| 错那县| 江安县| 钦州市| 商水县| 高州市| 会同县| 宜黄县| 乾安县| 高邑县| 健康| 和静县| 曲水县| 永靖县| 永昌县| 台南县| 大名县| 巴南区| 兴城市| 营山县| 溧阳市| 天津市| 桂平市| 和林格尔县| 巴林左旗| 城固县| 平度市| 灯塔市| 潮州市| 墨玉县| 睢宁县| 衡南县| 裕民县| 泰顺县|