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

spring中jdbcTemplate.batchUpdate的幾種使用情況

 更新時(shí)間:2022年04月08日 10:23:16   作者:扯吧  
本文主要介紹了spring中jdbcTemplate.batchUpdate的幾種使用情況,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

在我做批量插入的過(guò)程中,由于數(shù)據(jù)庫(kù)做了唯一約束,所以有些重復(fù)數(shù)據(jù)會(huì)出錯(cuò),在我的設(shè)想中,除出錯(cuò)的數(shù)據(jù),其它數(shù)據(jù)應(yīng)該是都會(huì)插入的,但事實(shí)不是;

1,batchUpdate(String[] sqls)

這種的sql在于多樣化,可以是各種混合sql,在操作時(shí),會(huì)一部分一部分的發(fā)送到數(shù)據(jù)庫(kù)去執(zhí)行,中途有某條sql報(bào)錯(cuò)時(shí),后面的sql則不會(huì)執(zhí)行,之前的sql則全部會(huì)執(zhí)行提交,可在數(shù)據(jù)庫(kù)看到變化;

暫時(shí)沒(méi)找到讓后面sql執(zhí)行的方法,搜了好久,都說(shuō)不支持這種操作,都建議在sql之前做判錯(cuò)處理或trycatch后,再將sql一條一條的執(zhí)行。

public void a (){
        try {
            String[] sql = new String[4];
            sql[0] = "insert into TEST(id) values (1)";
            sql[1] = "insert into TEST(id) values (2)";
            sql[2] = "insert into TEST(id) values (1)";
            sql[3] = "insert into TEST(id) values (3)";
            jdbcTemplate.batchUpdate(sql);
        } catch (DataAccessException e) {
            e.printStackTrace();
        }
}

在ID為主鍵的情況下,這個(gè)只會(huì)插入1和2,提示批處理中出現(xiàn)錯(cuò)誤: ORA-00001: 違反唯一約束條件。

2,batchUpdate(String sql,List <Object[]> parms)

這種的sql在于效率,固定的sql,變化的參數(shù),操作時(shí)間會(huì)極大減少,默認(rèn)情況下,當(dāng)中途有數(shù)據(jù)報(bào)錯(cuò)時(shí),會(huì)全部回滾,不提交,所以是全部插入或者全部不插入;

public void b (){
        try {
            String sql = "insert into TEST(id) values (?)";
            List<Object[]> list = new ArrayList<>();
            for (int i = 0; i < 4; i++) {
                String[] sqls = new String[1];
                sqls[0] = i +"";
                if(i == 2){ // 增加一條異常數(shù)據(jù)
                    sqls[0] = i-1 +"";
                }
                list.add(sqls);
            }
            jdbcTemplate.batchUpdate(sql,list);
        } catch (DataAccessException e) {
            e.printStackTrace();
        }
    }

這個(gè)全部都不會(huì)插入,提示批處理中出現(xiàn)錯(cuò)誤: ORA-00001: 違反唯一約束條件。

3,適用于我的解決方案

對(duì)sql處理處理了一下,對(duì)要插入的數(shù)據(jù)做了是否存在判斷,如果不存在,則插入;用not EXISTS 判斷要插入的數(shù)據(jù)或有主鍵約束或有唯一約束的數(shù)據(jù)是否存在;

public void b (){
        try {
            String[] sql = new String[2];
            sql[0] = "insert into TEST(id) values (1)";
            sql[1] = "insert into TEST(id) " +
                           "select '1' from dual where not EXISTS(SELECT id FROM TEST WHERE id = '1')";
            sql[2] = "insert into TEST(id) values (2)";
            jdbcTemplate.batchUpdate(sql);
        } catch (DataAccessException e) {
            e.printStackTrace();
        }
    }

會(huì)插入1和2。

到此這篇關(guān)于spring中jdbcTemplate.batchUpdate的幾種使用情況的文章就介紹到這了,更多相關(guān)spring jdbcTemplate.batchUpdate內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中BigDecimal類的add()的使用詳解

    Java中BigDecimal類的add()的使用詳解

    這篇文章主要介紹了Java中BigDecimal類的add()的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 詳解Spring中的Environment外部化配置管理

    詳解Spring中的Environment外部化配置管理

    本文主要介紹了Spring中的Environment外部化配置管理,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java中的NumberFormatException異常原因以及解決方案詳解

    Java中的NumberFormatException異常原因以及解決方案詳解

    這篇文章主要介紹了Java中的NumberFormatException異常原因以及解決方案詳解,NumberFormatException 是 Java 中的一個(gè)異常類,通常在字符串轉(zhuǎn)換為數(shù)字的過(guò)程中發(fā)生,它表示一個(gè)無(wú)效的數(shù)字格式,即字符串無(wú)法被正確解析為數(shù)字,需要的朋友可以參考下
    2024-02-02
  • RocketMQ NameServer保障數(shù)據(jù)一致性實(shí)現(xiàn)方法講解

    RocketMQ NameServer保障數(shù)據(jù)一致性實(shí)現(xiàn)方法講解

    這篇文章主要介紹了RocketMQ NameServer保障數(shù)據(jù)一致性實(shí)現(xiàn)方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • springboot創(chuàng)建監(jiān)聽(tīng)和處理事件的操作方法

    springboot創(chuàng)建監(jiān)聽(tīng)和處理事件的操作方法

    這篇文章主要介紹了springboot創(chuàng)建監(jiān)聽(tīng)和處理事件的操作方法,使用Spring Boot的事件機(jī)制來(lái)監(jiān)聽(tīng)和處理事件有多種優(yōu)勢(shì),本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2024-07-07
  • SpringBoot Session共享實(shí)現(xiàn)圖解

    SpringBoot Session共享實(shí)現(xiàn)圖解

    這篇文章主要介紹了SpringBoot Session共享實(shí)現(xiàn)圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 詳解Java分布式系統(tǒng)中一致性哈希算法

    詳解Java分布式系統(tǒng)中一致性哈希算法

    這篇文章主要介紹了Java分布式系統(tǒng)中一致性哈希算法,對(duì)算法感興趣的同學(xué),可以參考下
    2021-04-04
  • 詳解SpringMVC中的@RequestMapping注解

    詳解SpringMVC中的@RequestMapping注解

    這篇文章主要介紹了SpringMVC中@RequestMapping注解,@RequestMapping注解是一個(gè)用來(lái)處理請(qǐng)求地址映射的注解,可用于映射一個(gè)請(qǐng)求或一個(gè)方法,可以用在類或方法上,需要的朋友可以參考下
    2023-07-07
  • Java反射機(jī)制,反射相關(guān)API,反射API使用方式(反射獲取實(shí)體類字段名和注解值)

    Java反射機(jī)制,反射相關(guān)API,反射API使用方式(反射獲取實(shí)體類字段名和注解值)

    這篇文章主要介紹了Java反射機(jī)制,反射相關(guān)API,反射API使用方式(反射獲取實(shí)體類字段名和注解值),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Spring?Boot?打包如何將依賴全部打進(jìn)去

    Spring?Boot?打包如何將依賴全部打進(jìn)去

    這篇文章主要介紹了Spring?Boot?打包如何將依賴全部打進(jìn)去,在pom.xml中引入插件,需要在項(xiàng)目的pom.xml文件中,添加?Maven?插件??spring-boot-maven-plugin,本文結(jié)合實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09

最新評(píng)論

阿鲁科尔沁旗| 龙江县| 朝阳市| 云浮市| 南丹县| 武川县| 清原| 化州市| 海阳市| 白水县| 巨野县| 马边| 古田县| 拉萨市| 宣化县| 富民县| 明光市| 荔波县| 杭锦旗| 芦溪县| 罗江县| 红安县| 神农架林区| 新沂市| 长春市| 哈巴河县| 南昌县| 义马市| 舟曲县| 乐东| 乌兰察布市| 濮阳市| 和龙市| 新丰县| 兰溪市| 桐城市| 平远县| 郎溪县| 陇西县| 平阴县| 遵义县|