国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - Mybatis批量更新三種方式的實現

Mybatis批量更新三種方式的實現

2021-07-14 15:39僵尸吃過跳跳糖 Java教程

這篇文章主要介紹了Mybatis批量更新三種方式的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

mybatis實現批量更新操作

方式一:

?
1
2
3
4
5
6
7
8
9
10
<update id="updatebatch" parametertype="java.util.list">
  <foreach collection="list" item="item" index="index" open="" close="" separator=";">
    update tablename
    <set>
      name=${item.name},
      name2=${item.name2}
    </set>
    where id = ${item.id}
  </foreach>  
</update>

但mybatis映射文件中的sql語句默認是不支持以" ; " 結尾的,也就是不支持多條sql語句的執行。所以需要在連接mysql的url上加 &allowmultiqueries=true 這個才可以執行。

方式二:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<update id="updatebatch" parametertype="java.util.list">
    update tablename
    <trim prefix="set" suffixoverrides=",">
      <trim prefix="c_name =case" suffix="end,">
        <foreach collection="list" item="cus">
          <if test="cus.name!=null">
            when id=#{cus.id} then #{cus.name}
          </if>
        </foreach>
      </trim>
      <trim prefix="c_age =case" suffix="end,">
        <foreach collection="list" item="cus">
          <if test="cus.age!=null">
            when id=#{cus.id} then #{cus.age}
          </if>
        </foreach>
      </trim>
    </trim>
    <where>
      <foreach collection="list" separator="or" item="cus">
        id = #{cus.id}
      </foreach>
    </where>
</update>

這種方式貌似效率不高,但是可以實現,而且不用改動mysql連接

效率參考文章:http://www.jfrwli.cn/article/176279.html

方式三:

臨時改表sqlsessionfactory的屬性,實現批量提交的java,但無法返回受影響數量。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public int updatebatch(list<object> list){
    if(list ==null || list.size() <= 0){
      return -1;
    }
    sqlsessionfactory sqlsessionfactory = springcontextutil.getbean("sqlsessionfactory");
    sqlsession sqlsession = null;
    try {
      sqlsession = sqlsessionfactory.opensession(executortype.batch,false);
      mapper mapper = sqlsession.getmapper(mapper.class);
      int batchcount = 1000;//提交數量,到達這個數量就提交
      for (int index = 0; index < list.size(); index++) {
        object obj = list.get(index);
        mapper.updateinfo(obj);
        if(index != 0 && index%batchcount == 0){
          sqlsession.commit();
        }         
      }
      sqlsession.commit();
      return 0;
    }catch (exception e){
      sqlsession.rollback();
      return -2;
    }finally {
      if(sqlsession != null){
        sqlsession.close();
      }
    }
    
}

其中 springcontextutil 是自己定義的工具類 用來獲取spring加載的bean對象,其中getbean() 獲得的是想要得到的sqlsessionfactory。mapper 是自己的更具業務需求的mapper接口類,object是對象。

總結

  • 方式一 需要修改mysql的連接url,讓全局支持多sql執行,不太安全
  • 方式二 當數據量大的時候 ,效率明顯降低
  • 方式三 需要自己控制,自己處理,一些隱藏的問題無法發現。

附件:springcontextutil.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@component
public class springcontextutil implements applicationcontextaware{
 
  private static applicationcontext applicationcontext;
 
  @override
  public void setapplicationcontext(applicationcontext applicationcontext) throws beansexception {
    springcontextutil.applicationcontext = applicationcontext;
  }
 
  public static applicationcontext getapplicationcontext(){
    return applicationcontext;
  }
 
  public static object getbean(class t){
    try {
      return applicationcontext.getbean(t);
    }catch (beansexception e){
      return null;
    }
  }
 
  public static object getbean(string name){
    try {
      return applicationcontext.getbean(name);
    }catch (beansexception e){
      return null;
    }
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://segmentfault.com/a/1190000018084851

延伸 · 閱讀

精彩推薦
  • Java教程如何使用CountDownLatch同步java多線程

    如何使用CountDownLatch同步java多線程

    這篇文章主要介紹了如何使用CountDownLatch同步java多線程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可...

    志不堅者智不達2682020-08-06
  • Java教程Redis集群與SSM整合使用方法

    Redis集群與SSM整合使用方法

    這篇文章主要介紹了Redis集群與SSM整合使用方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    cui54455222021-03-03
  • Java教程Java MD5加密(實例講解)

    Java MD5加密(實例講解)

    下面小編就為大家帶來一篇Java MD5加密(實例講解)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    zhouguanglin4142020-12-16
  • Java教程Java實現簡單的分頁功能

    Java實現簡單的分頁功能

    這篇文章主要為大家詳細介紹了Java實現簡單的分頁功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    LandiYax4522020-12-12
  • Java教程SpringBoot學習之全局異常處理設置(返回JSON)

    SpringBoot學習之全局異常處理設置(返回JSON)

    本篇文章主要介紹了SpringBoot學習之全局異常處理設置(返回JSON),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    -貧寒豌豆8642021-04-05
  • Java教程Jmeter分布式壓力測試實現過程詳解

    Jmeter分布式壓力測試實現過程詳解

    這篇文章主要介紹了Jmeter分布式壓力測試實現過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可...

    yaominghui2592020-09-08
  • Java教程詳解Java中使用externds關鍵字繼承類的用法

    詳解Java中使用externds關鍵字繼承類的用法

    子類使用extends繼承父類是Java面向對象編程中的基礎知識,這里我們就來詳解Java中使用externds關鍵字繼承類的用法,需要的朋友可以參考下 ...

    DBOY4152020-05-25
  • Java教程Java字符串split使用方法代碼實例

    Java字符串split使用方法代碼實例

    這篇文章主要介紹了Java字符串split使用方法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以...

    勤快的懶羊羊3672020-07-30
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 成年人在线免费观看视频网站 | 黄瓜av在线| 久久精品无码一区二区三区 | 久久中文字幕一区 | 国产欧美在线观看 | 日本精品久久 | 亚洲国产精品一区二区久久 | 国产精品久久久久桃色tv | 国产精品视频免费看 | 中文字幕av一区二区三区 | 免费看少妇高潮一级毛片特黄 | 中文字幕一区二区三区不卡 | 日日干狠狠干 | 在线观看亚洲 | 久久精品国产91精品亚洲高清 | 中文字幕成人 | 亚洲欧洲精品成人久久奇米网 | av不卡在线播放 | 日韩婷婷| 午夜精品网站 | 欧美一区二区三区电影 | 欧美在线资源 | 欧美日韩第一区 | 国产乱码精品一区二区三区中文 | 91麻豆精品国产91久久久久久久久 | 九九亚洲 | 久久久久久久久国产成人免费 | 日韩免费 | 在线观看黄色电影 | 精品国产黄a∨片高清在线 欧美一级免费 | 色偷偷888欧美精品久久久 | 亚洲国产精品人人爽夜夜爽 | 国产精品久久久久久久久久免费 | 性网站在线观看 | 日日天天 | 亚洲夜幕久久日韩精品一区 | 久久美女 | 不卡视频一区 | 午夜视频在线看 | av一区二区在线观看 | 天堂精品|