美文网首页
Mybatis resultMap灵活用法(使用子查询)

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

作者: e80e074de5f8 | 来源:发表于2019-01-18 16:01 被阅读0次

背景

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

数据表 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>

相关文章

网友评论

      本文标题:Mybatis resultMap灵活用法(使用子查询)

      本文链接:https://www.haomeiwen.com/subject/favndqtx.html