1. 程式人生 > >Mybatis resultMap靈活用法(使用子查詢)

Mybatis resultMap靈活用法(使用子查詢)

day mybatis tty 文件 動物 流量 util 廣州 type

### 背景
查詢廣州每個景點的總流量,和每個景點每日流量

#### 數據表 t_廣州
|唯一標識id|地點place|流量counts|日期date|
|:---:|:---:|:---:|:---:|
|1|動物園|100|‘2018-11-11‘|
|2|動物園|200|‘2018-11-12‘|
|3|植物園|100|‘2018-11-11‘|

### 需求
統計每個地點的總流量,和每天的流量
結果示意結構如下:
````json
{
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文件如下:
````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靈活用法(使用子查詢)