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

Mybatis中一條SQL使用兩個(gè)foreach的問題及解決

 更新時(shí)間:2022年02月08日 10:15:00   作者:坑貨行不行  
這篇文章主要介紹了Mybatis中一條SQL使用兩個(gè)foreach的問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一條SQL使用兩個(gè)foreach的問題

未修改前的 SQL 語句

<select id="findQuestionType_3_correct" resultType="map">
    SELECT q.`id`, q.`questionContent`, GROUP_CONCAT(o.`questionOption`) AS questionOptionList 
    FROM `exam_question` q
    INNER JOIN `exam_question_option` o ON q.`id` = o.`questionId` 
    WHERE q.`id` IN 
        <foreach item="ids_1" collection="array" open="(" separator="," close=")" >
            #{ids_1}
        </foreach> 
        AND q.`questionType` = 3 AND o.`correct` = 1 
    GROUP BY FIELD(q.`id`, 
        <foreach item="ids_2" collection="array" separator="," >
            #{ids_2}
        </foreach> 
    )
</select>

這里注意一個(gè)點(diǎn),我兩個(gè) foreach 的 collection 參數(shù)都是:array;

這在只有一個(gè) foreach 的情況下,代碼是能跑通的,沒錯(cuò)我后臺(tái)給的參數(shù)是一個(gè) int[];

因?yàn)闃I(yè)務(wù)需求,我又加了一個(gè) foreach,同樣, collection 參數(shù)給的還是:array;

但是,運(yùn)行時(shí)代碼就報(bào)錯(cuò)了,

報(bào)錯(cuò)如下

???啥情況,四個(gè)參數(shù)???我只給了兩個(gè)參數(shù)?。??SQL 兩個(gè)參數(shù),Dao 層我也沒給 4 個(gè)啊

這個(gè) array 參數(shù)是個(gè)什么鬼?

最后,差不多邊查邊改了兩個(gè)多小時(shí),發(fā)現(xiàn)問題;

將 foreach 的 collection 參數(shù)值分別改為對(duì)應(yīng)的 ids_1 和 ids_2,即可;

代碼如下:

<select id="findQuestionType_3_correct" resultType="map">
    SELECT q.`id`, q.`questionContent`, GROUP_CONCAT(o.`questionOption`) AS questionOptionList 
    FROM `exam_question` q 
    INNER JOIN `exam_question_option` o ON q.`id` = o.`questionId` 
    WHERE q.`id` IN 
        <foreach item="ids_1" collection="ids_1" open="(" separator="," close=")" >
            #{ids_1}
        </foreach> 
        AND q.`questionType` = 3 AND o.`correct` = 1 
    GROUP BY FIELD(q.`id`, 
        <foreach item="ids_2" collection="ids_2" separator="," >
            #{ids_2}
        </foreach> 
    )
</select>

跑是跑通了,但是這樣只是 知其然不知其所以然,于是我在網(wǎng)上查閱了下資料,果然:

當(dāng)查詢有多個(gè)參數(shù)時(shí),foreach 的 collection 屬性可以指定名稱;

查閱文章為:Mybatis List列表In查詢實(shí)現(xiàn)的注意事項(xiàng)

foreach執(zhí)行多條sql報(bào)錯(cuò)的解決

今天在用mybatis執(zhí)行foreach更新操作時(shí)報(bào)了奇怪的錯(cuò)誤.sql語句是沒有任何問題的.sql拿出來直接能運(yùn)行.但是mybatis就是不能運(yùn)行.

而我傳遞一條數(shù)據(jù)的話mybatis能運(yùn)行,但是兩條以上數(shù)據(jù)就會(huì)報(bào)錯(cuò)

后來發(fā)現(xiàn)是mysql不支持執(zhí)行多條sql語句.為此需要再數(shù)據(jù)源后面加上一句話.就可以執(zhí)行多條sql了

&allowMultiQueries=true

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

相關(guān)文章

  • Java中的Phaser使用詳解

    Java中的Phaser使用詳解

    這篇文章主要介紹了Java中的Phaser使用詳解,與其他障礙不同,注冊(cè)在phaser上進(jìn)行同步的parties數(shù)量可能會(huì)隨時(shí)間變化,任務(wù)可以隨時(shí)進(jìn)行注冊(cè),需要的朋友可以參考下
    2023-11-11
  • 在Spring Boot中如何使用log4j記錄日志

    在Spring Boot中如何使用log4j記錄日志

    這篇文章主要介紹如何在spring boot中引入log4j,以及一些基礎(chǔ)用法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • springboot jta atomikos實(shí)現(xiàn)分布式事物管理

    springboot jta atomikos實(shí)現(xiàn)分布式事物管理

    這篇文章主要介紹了springboot jta atomikos實(shí)現(xiàn)分布式事物管理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(47)

    Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(47)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-08-08
  • Jenkins配置自動(dòng)發(fā)送郵件過程圖解

    Jenkins配置自動(dòng)發(fā)送郵件過程圖解

    這篇文章主要介紹了jenkins配置自動(dòng)發(fā)送郵件過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • JAVA多線程實(shí)現(xiàn)的四種方式及使用場景詳解

    JAVA多線程實(shí)現(xiàn)的四種方式及使用場景詳解

    這篇文章主要介紹了JAVA多線程實(shí)現(xiàn)的四種方式及使用場景,并舉例說明了在管理系統(tǒng)中多線程的應(yīng)用場景,如數(shù)據(jù)導(dǎo)入導(dǎo)出、數(shù)據(jù)緩存更新、并發(fā)用戶操作處理、系統(tǒng)監(jiān)控和定時(shí)任務(wù)執(zhí)行,需要的朋友可以參考下
    2025-01-01
  • Java集合之HashMap用法詳解

    Java集合之HashMap用法詳解

    這篇文章主要介紹了Java集合之HashMap用法,結(jié)合實(shí)例形式分析了java map集合中HashMap定義、遍歷等相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • 使用Maven搭建Hadoop開發(fā)環(huán)境

    使用Maven搭建Hadoop開發(fā)環(huán)境

    這篇文章主要介紹了使用Maven搭建Hadoop開發(fā)環(huán)境的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 基于Java文件輸入輸出流實(shí)現(xiàn)文件上傳下載功能

    基于Java文件輸入輸出流實(shí)現(xiàn)文件上傳下載功能

    這篇文章主要為大家詳細(xì)介紹了基于Java文件輸入輸出流實(shí)現(xiàn)文件上傳下載功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Java動(dòng)態(tài)代理詳解及實(shí)例

    Java動(dòng)態(tài)代理詳解及實(shí)例

    這篇文章主要介紹了Java動(dòng)態(tài)代理詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-01-01

最新評(píng)論

墨竹工卡县| 军事| 依兰县| 祁阳县| 吴江市| 海口市| 高碑店市| 黎川县| 韶山市| 泽普县| 大庆市| 舟山市| 江阴市| 车致| 石泉县| 荔波县| 德昌县| 益阳市| 马尔康县| 屯昌县| 牡丹江市| 镇赉县| 德令哈市| 永善县| 合作市| 苏尼特右旗| 泰州市| 盐津县| 柳河县| 徐闻县| 焦作市| 松原市| 广丰县| 南华县| 东平县| 泽州县| 黄石市| 三穗县| 阿拉尔市| 南丹县| 敖汉旗|