Mybatis resultMap灵活用法(使用子查询)
### 背景
查询广州每个景点的总流量,和每个景点每日流量
#### 数据表 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灵活用法(使用子查询)的更多相关文章
- mysql中的union用法以及子查询综合应用
union查询就是把2条或者多条sql语句的查询结果,合并成一个结果集. 如:sql1: N行,sql2: M行,sql1 union sql2 ---> N+M行 1.能否从2张表查询再uni ...
- MySQL里面的子查询
一.子查询定义 定义: 子查询允许把一个查询嵌套在另一个查询当中. 子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询. 子查询可以包含普通select可以包括的任何子句,比如:dis ...
- MySQL中的联表查询与子查询
0.准备数据 1.内连接:INNER JOIN 2.左连接:LEFT JOIN 3.右连接:RIGHT JOIN 4.USING子句 扩展知识点: 0.表别名的使用: 1.group by的用法 2. ...
- Mybatis 系列8-结合源码解析select、resultMap的用法
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...
- MyBatis子查询
一.父查询BaseChildResultMap: <?xml version="1.0" encoding="UTF-8" ?> <!DOCT ...
- Mybatis 子查询
在查询数据库时,需要以查询结果为查询条件进行关联查询. 在mybatis中通过association标签和collection标签实现子查询. 1. collection(集合)和associatio ...
- coding++:mybatis 嵌套查询子查询column传多个参数描述
mybatis 嵌套查询子查询column传多个参数如下: 2.代码示例 备注:注意,相同颜色的单词都是有关联的 <resultMap id="blogResult" typ ...
- Mybatis 一对多延迟加载,并且子查询中与主表字段不对应 (19)
Mybatis 一对多延迟加载,并且子查询中与主表字段不对应应用说明. 实现一对多关联(懒加载),一个教研组对应多个教师,既:教师的教研编号与教研组的教研编号关联,并且教师关联教研组外键与教研组编号 ...
- 子查询。ANY三种用法。ALL两种用法。HAVING中使用子查询。SELECT中使用子查询。
子查询存在的意义是解决多表查询带来的性能问题. 子查询返回单行多列: ANY三种用法: ALL两种用法: HAVING中的子查询返回单行单列: SELECT中使用子查询:(了解就好,避免使用这种方法! ...
随机推荐
- 微信小程序,动态改变样式
小程序目前没有修改样式api,但是可以利用数据绑定实现动态改变样式,可以用view标签模拟page然后改变view标签的样式,以下案例演示了如果改变page背景颜色: <view class=& ...
- 关于webstorm启动后闪退
总是提示内存不足,就把内容该成了2048 在启动时候就闪退,无法进去编辑器 找到安装目录下的bin文件夹打开找到WebStorm.exe.vmoptions文件打开 把下面选项设置为 -Xmx1024 ...
- CentOS 7运维管理笔记(1)----设置默认启动模式为GUI模式或命令行模式
昨天在虚拟机中安装CentOS 7时选择了GNOME模式安装,开机默认进入GUI模式.网上搜找修改为默认命令行模式的方法,看到说修改 /etc/inittab文件,在最低下一行添加 但是 使用 cat ...
- Bootstrap + AngularJS+ Ashx + SQL Server/MySQL
去年年底12月,为适应移动端浏览需求,花了1个月时间学习Bootstrap,并将公司ASP网站重构成ASP.NET. 当时采取的网站架构: Bootstrap + jQuery + Ashx + SQ ...
- 数组多功能splice()方法的插入,删除,替换
多功能splice()插入.删除.替换 <script type="text/javascript"> var arr=['A','B','C','D','E','F' ...
- SpringMVC学习(五)——拦截器示例
部分内容摘自开涛的<跟我学SpringMVC.PDF> 拦截器,本质类似于AOP,主要的应用场景: 1.日志记录:记录请求信息的日志,以便进行信息监控.信息统计.计算PV等. 2.权限检查 ...
- css positioning计算和jquery对应函数
- Retrofit-入门使用
1. 在模块目录下的build.gradle dependencies { compile "com.squareup.retrofit2:retrofit:2.1.0" comp ...
- ssh免密码登陆失败的原因
今天因为需要在两台服务器上进行ssh免登陆,所以安装网上的教程,ssh-keygen -t rsa,然后把相互的密钥加入到对方的authorized_keys. 问题是我们虽然这样做了,却一直要密码, ...
- calculate fraction by oracle
QUESTION:When you meet calculate fraction in oracle SOLUTION: 1.Check out their values respectively. ...