Mybatis resultMap灵活用法(使用子查询)

2019-01-18  本文已影响0人  e80e074de5f8

背景

查询广州每个景点的总流量,和每个景点每日流量

数据表 t_广州

唯一标识id 地点place 流量counts 日期date
1 动物园 100 '2018-11-11'
2 动物园 200 '2018-11-12'
3 植物园 100 '2018-11-11'

需求

统计每个地点的总流量,和每天的流量
结果示意结构如下:

{
    place: '动物园',
    allCounts: 300,
    perDay : [
        {
            date: '2018-11-11',
            counts: 100
        },
        {
            date: '2018-11-12',
            counts: 200
        }
    ]
},
{
    place: '植物园',
    allCounts: 100,
    perDay : [
        {
            date: '2018-11-11',
            counts: 100
        }
    ]
},

xml文件如下:

<select id="pageResultMapSelect" parameterType="java.util.Map" resultMap="pageResultMap">
    select date,counts from t_广州 where place=#{place} group by date
</select>
<resultMap id="pageResultMap" resultType="java.util.Map">
    <result column="place" property="place" />
    <result column="allCounts" property="allCounts" />
    <collection property="perDay" javaType="java.util.List" ofType="java.util.Map" column="(place=place)" select="pageResultMapSelect"></collection>
</resultMap>
<select id="page" parameterType="java.util.Map" resultMap="pageResultMap">
    select place,sum(counts) as allCounts from t_广州 group by place
</select>
上一篇 下一篇

猜你喜欢

热点阅读