方法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 中使用数据库查询别名进行映射的更多相关文章

  1. mybatis中的高级查询

    Mybatis作为一个ORM框架,肯定是支持sql高级查询的. 下面的一个案例来为大家详细讲解mybatis中的高级查询. 案例说明: 此案例的业务关系是用户,订单,订单详情与商品之间的关系. 以订单 ...

  2. mybatis中的延迟查询思想

    1.一对一延迟加载 延迟加载: 就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据.延迟加载也称懒加载. 好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比 ...

  3. java使用插件pagehelper在mybatis中实现分页查询

    摘要: com.github.pagehelper.PageHelper是一款好用的开源免费的Mybatis第三方物理分页插件 PageHelper是国内牛人的一个开源项目,有兴趣的可以去看源码,都有 ...

  4. Mybatis中的in查询和foreach标签

    Mybatis中的foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separato ...

  5. SSM-MyBatis-13:Mybatis中多条件查询

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 实体类 public class Book { private Integer bookID; private ...

  6. 【mybatis】mybatis中放置IN查询拼接sql过长,IN查询进行分批次查询的处理

    需要使用的切割list集合的工具类,链接:https://www.cnblogs.com/sxdcgaq8080/p/9376947.html 处理逻辑,原本的一个LIst,进行切割,循环进行myba ...

  7. CodeIgniter (CI)框架中的数据库查询汇总

    引言: 前两天业务涉及到一个拉取答题排行榜的需求,数据库里数据是这样的: 同一个人可能提交过多次成绩,所以同一个人可能会有多次记录: 同一个人提交的多次成绩中可能有至少两次成绩是一样的. 于是,查询的 ...

  8. 在使用mybatis中指定字段查询

    1:需求:查询学过“叶平”老师所教的所有课的同学的学号.姓名: List<Map<String,Object>> selectYepingAllCourse(@Param(&q ...

  9. Mybatis中使用级联查询,一对多的查询

    一.需求描述 自己在开发一个小程序的过程中,需要做的一个查询是稍微比较复杂的查询,根据用户信息去查询用户所对应的宠物信息. 一个用户可能对应多个宠物,所以在用户和宠物信息的对应关系就是一对多的关系. ...

随机推荐

  1. 自言自语WEB前端面试题(一)

    刚刚得到通知,明天可能要放半天假,开心的像个200斤的傻子 我怕真是个傻子,是后天 今天的我是依旧痛经的我 于是我又来写博客了 原来,博客竟是痛经良药 接下来请看题,此题,0难度,基本不需要动脑子 J ...

  2. TP5模型关联问题

    在使用模型关联时:假如有表   merchant商户表   m_store 店铺表  m_store_ref 商户店铺关联表  user 普通用户表 $mer = Merchant::with([ ' ...

  3. ------ 开源软件 Tor(洋葱路由器,构建匿名网络的方案之一)源码分析——主程序入口点(二)------

    ---------------------------------------------------------- 第二部分仅考察下图所示的代码片段--configure_backtrace_han ...

  4. 在Vue.js2.0中组件模板子元素数量问题

    在Vue中当利用组件进行开发时候,组件所使用的模板只可以应用于一个根实例,当你需要添加多个子元素的时候,可以用一个div将它们包裹起来,代码如下: <template id="task ...

  5. 【Unity与23种设计模式】迭代器模式(Iterator)

    GoF中定义: "在不知道集合内部细节的情况下,提供一个按序方法存取一个对象集合体的每一个单元." 迭代器模式由于经常使用到 已经被现代程序设计语言纳为标准语句或收录到标准函数库中 ...

  6. 使用c#对MongoDB进行查询(1)

    1.BsonDocument对象 在MongoDB.Bson命名空间下存在一个BsonDocument类,它是MongoDB的文档对象,代表着MongoDB中不规则数据一条条实体模型.可以使用Bson ...

  7. String类详解

    看了很多文章事实证明之前的通过new创建String对象只有一个是错误的,实际上创建一个或者创建两个对象,一个在堆区,一个在常量池,当常量池中已经存在就不会创建.看了一篇非常好的文章http://ww ...

  8. 微信扫一扫JSSDK 扫一扫报错 invalid signature 问题

    交代一下业务场景 在在四个页面都需要用到扫一扫去扫二维码.然而在图三-我的订单 下单中这个页面扫一扫不起效,当时就郁闷了为啥其他页面有用,这里却没用,开始调试吧. 报错信息是签名验证不成功. 自己去打 ...

  9. redis慢日志

    redis的slowlog是redis用于记录记录慢查询执行时间的日志系统.由于slowlog只保存在内存中,因此slowlog的效率很高,完全不用担心会影响到redis的性能.Slowlog是Red ...

  10. 基于docker 部署 canvas-lms

    准备:  一台8G内存的服务器.安装好docker, pull一个ubuntu镜像下来, 可以是最新版也可以是官方支持的14/ 16 Step 1: 启动docker容易加载ubuntu镜像.命令如下 ...