MyBatis 中使用数据库查询别名进行映射
方法1
XXMapper.xml
<mapper namespace="com.hfepc.dao.andon.AndonExceptionKanbanVOMapper" >
<select id="getfindAll" resultMap="com.hfepc.vo.andon.AndonExceptionKanban1VO">
SELECT
A.excp_id AS 'excpId',
E.line_name AS 'lineName',
D.equ_name AS 'equName',
F.type_name AS 'type',
G.end_time AS 'triggerTime',
H.end_time AS 'attendTime',
(H.end_time - G.end_time)/60 AS 'totalExceptionTime',
J.user_name AS 'userName',
K.node_name AS 'status'
FROM andon_exception A
LEFT JOIN andon_exception_equ B ON A.excp_id = B.excp_id
LEFT JOIN equ_book C ON B.eb_id = C.eb_id
LEFT JOIN equ_info D ON C.equ_id = D.equ_id
LEFT JOIN line_info E ON A.line_id = E.line_id
LEFT JOIN andon_type F ON A.type_id = F.type_id
LEFT JOIN andon_flow_prcs G ON A.excp_id = G.excp_id AND G.node_id = 1
LEFT JOIN andon_flow_prcs H ON A.excp_id = H.excp_id AND H.node_id = 2
LEFT JOIN andon_flow_prcs I ON A.excp_id = I.excp_id AND I.node_id = 3
LEFT JOIN sys_user J ON H.operator_id = J.user_id
LEFT JOIN andon_node K ON A.excp_status = K.node_id
WHERE 1=1
AND I.end_time LIKE date_format(now(),'%Y-%m-%d%')
AND E.ws_id = (
SELECT ws_id
FROM line_info
WHERE line_code = #{lineCode}
)
</select>
</mapper>
XXMapper.java
public List<AndonExceptionKanban1VO> getGG(@Param("lineCode") String lineCode);
AndonExceptionKanban1VO.java
public class AndonExceptionKanban1VO{
private Integer excpId;// 安灯异常ID
private String lineName; // 产线
private String type; // 异常类型
private String equName; // 设备
private Date triggerTime; // 提报时间
private Date attendTime; // 签到时间
private long totalExceptionTime; // 累计时间
private String userName; // 用户名(签到)
private String status; // 状态
public String getLineName() {
return lineName;
}
public void setLineName(String lineName) {
this.lineName = lineName;
}
.
.
.
方法2
XXMapper.xml
<mapper namespace="com.hfepc.dao.andon.AndonExceptionKanbanVOMapper" >
<resultMap type="andon.AndonExceptionKanbanVO" id="baseResultMap">
<id property="excpId" column="excpId"/>
<result property="lineName" column="lineName"/>
<result property="type" column="type"/>
<result property="equName" column="equName"/>
<result property="triggerTime" column="triggerTime"/>
<result property="attendTime" column="attendTime"/>
<result property="totalExceptionTime" column="totalExceptionTime"/>
<result property="userName" column="userName"/>
<result property="status" column="status"/>
</resultMap>
<resultMap type="com.hfepc.vo.andon.AndonExceptionKanban1VO" id="voMap">
<id property="excpId" column="excpId"/>
<result property="lineName" column="lineName"/>
<result property="type" column="type"/>
<result property="equName" column="equName"/>
<result property="triggerTime" column="triggerTime"/>
<result property="attendTime" column="attendTime"/>
<result property="totalExceptionTime" column="totalExceptionTime"/>
<result property="userName" column="userName"/>
<result property="status" column="status"/>
</resultMap>
<select id="getGG" resultMap="voMap">
SELECT
A.excp_id AS 'excpId',
E.line_name AS 'lineName',
D.equ_name AS 'equName',
F.type_name AS 'type',
G.end_time AS 'triggerTime',
H.end_time AS 'attendTime',
(H.end_time - G.end_time)/60 AS 'totalExceptionTime',
J.user_name AS 'userName',
K.node_name AS 'status'
FROM andon_exception A
LEFT JOIN andon_exception_equ B ON A.excp_id = B.excp_id
LEFT JOIN equ_book C ON B.eb_id = C.eb_id
LEFT JOIN equ_info D ON C.equ_id = D.equ_id
LEFT JOIN line_info E ON A.line_id = E.line_id
LEFT JOIN andon_type F ON A.type_id = F.type_id
LEFT JOIN andon_flow_prcs G ON A.excp_id = G.excp_id AND G.node_id = 1
LEFT JOIN andon_flow_prcs H ON A.excp_id = H.excp_id AND H.node_id = 2
LEFT JOIN andon_flow_prcs I ON A.excp_id = I.excp_id AND I.node_id = 3
LEFT JOIN sys_user J ON H.operator_id = J.user_id
LEFT JOIN andon_node K ON A.excp_status = K.node_id
WHERE 1=1
AND I.end_time LIKE date_format(now(),'%Y-%m-%d%')
AND E.ws_id = (
SELECT ws_id
FROM line_info
WHERE line_code = #{lineCode}
)
</select>
</mapper>
XXMapper.java
public List<AndonExceptionKanban1VO> getGG(@Param("lineCode") String lineCode);
小知识点:
、resultMap 中的对应column字段是完成SQL查询语句之后显示的字段名(而非查询前显示的字段名)
、通过SSM框架的SpringMVC映射到前台的字段与对应的domain层无关系,而与传递的map对应的键值KEY有关系,如上中显示的userName字段但是domain中显示的是attendName字段。前台映射是${xx.userName } 而非attendName
、SQL 返回的对象对应键值关系表resultMap="voMap"。根据Map进行返回
MyBatis 中使用数据库查询别名进行映射的更多相关文章
- mybatis中的高级查询
Mybatis作为一个ORM框架,肯定是支持sql高级查询的. 下面的一个案例来为大家详细讲解mybatis中的高级查询. 案例说明: 此案例的业务关系是用户,订单,订单详情与商品之间的关系. 以订单 ...
- mybatis中的延迟查询思想
1.一对一延迟加载 延迟加载: 就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据.延迟加载也称懒加载. 好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比 ...
- java使用插件pagehelper在mybatis中实现分页查询
摘要: com.github.pagehelper.PageHelper是一款好用的开源免费的Mybatis第三方物理分页插件 PageHelper是国内牛人的一个开源项目,有兴趣的可以去看源码,都有 ...
- Mybatis中的in查询和foreach标签
Mybatis中的foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separato ...
- SSM-MyBatis-13:Mybatis中多条件查询
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 实体类 public class Book { private Integer bookID; private ...
- 【mybatis】mybatis中放置IN查询拼接sql过长,IN查询进行分批次查询的处理
需要使用的切割list集合的工具类,链接:https://www.cnblogs.com/sxdcgaq8080/p/9376947.html 处理逻辑,原本的一个LIst,进行切割,循环进行myba ...
- CodeIgniter (CI)框架中的数据库查询汇总
引言: 前两天业务涉及到一个拉取答题排行榜的需求,数据库里数据是这样的: 同一个人可能提交过多次成绩,所以同一个人可能会有多次记录: 同一个人提交的多次成绩中可能有至少两次成绩是一样的. 于是,查询的 ...
- 在使用mybatis中指定字段查询
1:需求:查询学过“叶平”老师所教的所有课的同学的学号.姓名: List<Map<String,Object>> selectYepingAllCourse(@Param(&q ...
- Mybatis中使用级联查询,一对多的查询
一.需求描述 自己在开发一个小程序的过程中,需要做的一个查询是稍微比较复杂的查询,根据用户信息去查询用户所对应的宠物信息. 一个用户可能对应多个宠物,所以在用户和宠物信息的对应关系就是一对多的关系. ...
随机推荐
- [BZOJ1030] [JSOI2007] 文本生成器 (AC自动机 & dp)
Description JSOI交给队员ZYX一个任务,编制一个称之为“文本生成器”的电脑软件:该软件的使用者是一些低幼人群,他们现在使用的是GW文本生成器v6版.该软件可以随机生成一些文章―――总是 ...
- linux优化项
Linux优化: 1.建立普通账号,使用普通用户登陆. 2.处理SELINUX. 3.处理防火墙. 4.精简开机自启动服务.保留sshd,network,crond,rsyslog,sysstat. ...
- 魔改版ss-panel v3前端配置文件
配置文件所在目录:网站根目录/config/.config.php <?php // ss-panel v3 配置 // // !!! 修改此key为随机字符串确保网站安全 !!! $Syste ...
- hibernate 反向生成 实体类
1,配置数据库连接 步骤. 点击 windows -> open perspective - > myeclipse datebase Exprorer 打开了dateb ...
- 由html,body{height:100%}引发的对html和body的思考
html,body{height:100%} 今天看到一个CSS样式:html,body{height:100%},第一次看到,感觉挺奇怪,为什么html还需要设置height:100%呢,html不 ...
- HashMap中的resize以及死链的情况
之前我已经写过关于HashMap的内容了:http://www.cnblogs.com/wang-meng/p/7545725.html 我们都知道HashMap是线程不安全的, 如果多线程来访问会有 ...
- .msi安装包安装方法(安装错误2503和2502)
把鼠标放到Win8屏幕的最左下角,等待Win8 Metro界面的缩略图出现后点击鼠标右键,在弹出的菜单中选择“命令提示符(管理员)”在“命令提示符(管理员)”中输入 msiexec /package ...
- 使用.NET Core快速开发一个较正规的命令行应用程序
程序员的世界,命令行工具一直是"体验非常友好"的工具,也能自动化完成很多事情,同时还能结合shell来进行某项任务的批处理(脚本).在.NET Core中,命令行应用程序是基础,但 ...
- 3Des加解密 C#--->Java
Java的Byte范围为-128至127,c#的Byte范围是0-255.核心是确定Mode和Padding,关于这两个的意思可以搜索3DES算法相关文章. C#采用CBC Mode,PKCS7 Pa ...
- ubuntu14.04行更新软件包
ubuntu14.04行更新软件包 headsen chen 2017-10-12 16:01:34 apt-get update对应的就是第一步. apt-get upgrade 与apt-g ...