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

mybatis父查詢(xún)中的參數(shù)傳遞到子查詢(xún)中使用過(guò)程

 更新時(shí)間:2026年06月10日 14:46:57   作者:zjun1001  
本文詳細(xì)介紹了在使用日期參數(shù)進(jìn)行分表查詢(xún)時(shí),如何將參數(shù)作為數(shù)據(jù)庫(kù)表返回值的一部分進(jìn)行傳遞,并探討了在父查詢(xún)與子查詢(xún)間傳遞復(fù)雜類(lèi)型參數(shù)(如List)的方法,通過(guò)示例展示了如何在DAO層和Controller層實(shí)現(xiàn)這一功能

需求

數(shù)據(jù)庫(kù)表是按照日期進(jìn)行分表,查找數(shù)據(jù)時(shí)候,不同日期的數(shù)據(jù)到不同的表中查找,此時(shí)日期作為參數(shù)傳遞。

在有父、子查詢(xún)的SQL語(yǔ)句時(shí),希望子查詢(xún)能夠使用到父查詢(xún)中的參數(shù)(如日期)。

實(shí)現(xiàn)

將參數(shù)作為數(shù)據(jù)庫(kù)表返回值的某一列,進(jìn)行傳遞。此時(shí),可以在resultMap中獲取到。

示例如下:

  • Dao層
List <PicMoreDetailVo> selectPicList(@Param("tableName") String tableName, @Param("picVo") PicManagerVo picManagerVo);
  • 父查詢(xún)
<select id="selectPicList" resultMap="bagIdFromMonthTable">
        SELECT id,create_time,'${tableName}' as tableName FROM baginfo_${tableName} WHERE stationId = #{picVo.stationId} AND create_time BETWEEN #{picVo.startTime} AND #{picVo.endTime}
        ORDER BY create_time ${picVo.sort} LIMIT #{picVo.currentPageNo},#{picVo.pageSize}
    </select>
  • 父查詢(xún)返回map
    <resultMap type="com.qxmz.vo.pic.PicMoreDetailVo" id="bagIdFromMonthTable">
        <id property="bagId" column="id"/>
        <id property="createTime" column="create_time"/>
        <collection property="picList" ofType="com.qxmz.vo.pic.PicMoreReqVo" select="selectPicListByBagIdFromMonthTable"
                    column="{id=id,tableName=tableName}">
        </collection>
    </resultMap>
  • 子查詢(xún)
<select id="selectPicListByBagIdFromMonthTable" resultMap="picId">
		SELECT id,pic_url,isMainPic FROM baginfo_pic_${tableName} where bagInfo_id=#{id}
    </select>
  • 子查詢(xún)返回map
<resultMap type="com.qxmz.vo.pic.PicMoreReqVo" id="picId">
        <id column="id" property="picId"/>
        <result column="isMainPic" property="isMainPic"/>
        <result column="pic_url" property="picUrl"/>
    </resultMap>

另類(lèi)場(chǎng)景

在父子查詢(xún)參數(shù)傳遞過(guò)程中,除上面String類(lèi)型外,如果有l(wèi)ist這種復(fù)雜類(lèi)型參數(shù),可以將list轉(zhuǎn)為String類(lèi)型進(jìn)行傳遞,類(lèi)似"a,b,c",然后再在子查詢(xún)中轉(zhuǎn)為list使用。

由于本人從沒(méi)遇到過(guò)這種場(chǎng)景,下文僅僅作為演示。另外,對(duì)于這種場(chǎng)景,也可以考慮從業(yè)務(wù)上解決。

  • Controller層
    @GetMapping("/select/test")
    @ApiOperation(value = "select test", notes = "select test", httpMethod = "GET")
    public Object judgeStationList() {
        try {
            List<String> timeList = new ArrayList<>();
            timeList.add("2021-06-09 10:46:16");
            //timeList.add("2021-06-09 10:46:17");
            String timeListStr = StringUtils.strip(timeList.toString(), "[]");
            return bagInfoDao.parentSelect(timeListStr);
        } catch (Exception e) {
            logger.error("異常:{}", e);
            return "error";
        }
    }
  • Dao層
List<BagInfo> parentSelect(String timeListStr);
  • 父查詢(xún)
    <select id="parentSelect" resultMap="testListMap">
        select id,create_time,'${timeListStr}' as childTimeListStr from baginfo_2021_06
        <where>
            <if test="timeListStr!=null and timeListStr!='' ">
                and create_time in
                <foreach item="time" collection="timeListStr.split(',')" open="(" separator="," close=")">
                    #{time}
                </foreach>
            </if>
        </where>
    </select>
  • 父查詢(xún)返回Map
    <resultMap type="com.qxmz.vo.pic.PicMoreDetailVo" id="testListMap">
        <id property="bagId" column="id"/>
        <id property="createTime" column="create_time"/>
        <collection property="picList" ofType="com.qxmz.vo.pic.PicMoreReqVo" select="childSelect"
                    column="{id=id,childTimeListStr=childTimeListStr}">
        </collection>
    </resultMap>
  • 子查詢(xún)
    <select id="childSelect" resultType="com.qxmz.vo.pic.PicMoreReqVo">
        select id picId,isMainPic,pic_url picUrl from baginfo_pic_2021_06
        <where>
            bagInfo_id=#{id}
            <if test="childTimeListStr!=null and childTimeListStr!='' ">
                and create_time in
                <foreach item="time" collection="childTimeListStr.split(',')" open="(" separator="," close=")">
                    #{time}
                </foreach>
            </if>
        </where>
    </select>

總結(jié)

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

相關(guān)文章

  • 基于JVM性能監(jiān)控命令介紹

    基于JVM性能監(jiān)控命令介紹

    下面小編就為大家?guī)?lái)一篇基于JVM性能監(jiān)控命令介紹。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • 基于Java實(shí)現(xiàn)獲取本地IP地址和主機(jī)名

    基于Java實(shí)現(xiàn)獲取本地IP地址和主機(jī)名

    這篇文章主要介紹了基于Java實(shí)現(xiàn)獲取本地IP地址和主機(jī)名,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java編程實(shí)現(xiàn)打地鼠文字游戲?qū)嵗a

    Java編程實(shí)現(xiàn)打地鼠文字游戲?qū)嵗a

    這篇文章主要介紹了Java編程實(shí)現(xiàn)打地鼠文字游戲?qū)嵗a,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-11-11
  • 淺析Spring獲取Bean的九種方法詳解

    淺析Spring獲取Bean的九種方法詳解

    隨著SpringBoot的普及,Spring的使用也越來(lái)越廣,在某些場(chǎng)景下,我們無(wú)法通過(guò)注解或配置的形式直接獲取到某個(gè)Bean。比如,在某一些工具類(lèi)、設(shè)計(jì)模式實(shí)現(xiàn)中需要使用到Spring容器管理的Bean,此時(shí)就需要直接獲取到對(duì)應(yīng)的Bean,這篇文章主要介紹了Spring獲取Bean的九種方法
    2023-01-01
  • Java并發(fā)編程之Semaphore詳解

    Java并發(fā)編程之Semaphore詳解

    這篇文章主要介紹了Java并發(fā)編程之concurrent包中的Semaphore詳解,信號(hào)量Semaphore一般用來(lái)表示可用資源的個(gè)數(shù),相當(dāng)于一個(gè)計(jì)數(shù)器,可類(lèi)比生活中停車(chē)場(chǎng)牌子上面顯示的停車(chē)場(chǎng)剩余車(chē)位數(shù)量,需要的朋友可以參考下
    2023-12-12
  • Windows安裝兩個(gè)或多個(gè)JDK并實(shí)現(xiàn)自由切換的方法

    Windows安裝兩個(gè)或多個(gè)JDK并實(shí)現(xiàn)自由切換的方法

    最近新接手一個(gè)項(xiàng)目,啟動(dòng)的時(shí)候,發(fā)現(xiàn)有些jar和現(xiàn)在正在使用的JDK版本不一致,一直啟動(dòng)有問(wèn)題,想著就多裝一個(gè)JDK,由于為了保證java的運(yùn)行環(huán)境和編譯環(huán)境保持一致,就需要我們?cè)O(shè)置jdk的環(huán)境變量,所以本文給大家介紹了Windows安裝兩個(gè)或多個(gè)JDK并實(shí)現(xiàn)自由切換的方法
    2025-03-03
  • 淺談一下RabbitMQ、Kafka和RocketMQ消息中間件對(duì)比

    淺談一下RabbitMQ、Kafka和RocketMQ消息中間件對(duì)比

    這篇文章主要介紹了淺談一下RabbitMQ、Kafka和RocketMQ消息中間件對(duì)比,消息中間件屬于分布式系統(tǒng)中一個(gè)字系統(tǒng),關(guān)注于數(shù)據(jù)的發(fā)送和接收,利用高效可靠的異步信息傳遞機(jī)制對(duì)分布式系統(tǒng)中的其余各個(gè)子系統(tǒng)進(jìn)行集成,需要的朋友可以參考下
    2023-05-05
  • springboot接口參數(shù)為L(zhǎng)ist的問(wèn)題

    springboot接口參數(shù)為L(zhǎng)ist的問(wèn)題

    這篇文章主要介紹了springboot接口參數(shù)為L(zhǎng)ist的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Spring中過(guò)濾器和攔截器的區(qū)別及具體實(shí)現(xiàn)方式

    Spring中過(guò)濾器和攔截器的區(qū)別及具體實(shí)現(xiàn)方式

    在Spring框架中,和都是用于處理 HTTP 請(qǐng)求的中間件,但它們?cè)谧饔梅秶?shí)現(xiàn)方式和生命周期上有顯著區(qū)別,本文給大家介紹Spring中過(guò)濾器和攔截器的區(qū)別及具體實(shí)現(xiàn),感興趣的朋友一起看看吧
    2025-07-07
  • Java NIO Path接口和Files類(lèi)配合操作文件的實(shí)例

    Java NIO Path接口和Files類(lèi)配合操作文件的實(shí)例

    下面小編就為大家分享一篇Java NIO Path接口和Files類(lèi)配合操作文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11

最新評(píng)論

明水县| 白玉县| 阿拉善盟| 顺义区| 峡江县| 旬邑县| 外汇| 江山市| 报价| 若尔盖县| 屏南县| 二手房| 临泉县| 藁城市| 且末县| 来安县| 遵义县| 长子县| 鄂托克旗| 准格尔旗| 商洛市| 大石桥市| 左贡县| 枣阳市| 襄樊市| 景洪市| 武穴市| 彭山县| 无为县| 广汉市| 河源市| 梅河口市| 疏附县| 本溪市| 福海县| 石门县| 晴隆县| 左云县| 高碑店市| 洮南市| 石家庄市|