mybatis中如何将多个表的查询结果,放入结果集中返回
1、首先需要将resultMap进行改造,为了避免对其他sql的影响建议另外定义一个resultMapExtral,避免id相同,
2、然后在resultMapExtral中添加其它表的字段,若多个表中的字段名相同,要对查询结果和resultMapExtral中相同的字段另起别名,
3、最后另外定义一个实体bean接收结果。相当于重新定义一个包含所有返回字段的entity,而不能用原先单表的entity。(RccpWorkerCenterCapacityEntityExtral)
4、也可以直接返回JsonObject对象,不用返回entity,这样就不需要用resultMap了,更简单一些。
定义结果集:
<resultMap id="BaseResultMapExtral"
type="com.cybertron.service.rccp.entity.RccpWorkerCenterCapacityEntityExtral">
<id column="workcenter_capacity_id" jdbcType="INTEGER"
property="workercenterCapacityId" />
<result column="process_number" jdbcType="INTEGER" property="processNumber" />
<result column="product_name" jdbcType="VARCHAR" property="productName" />
<result column="product_id" jdbcType="INTEGER" property="productId" />
<result column="average_volume" jdbcType="INTEGER" property="averageVolume" />
<result column="single_process_time" jdbcType="DOUBLE"
property="singleProcessTime" />
<result column="change_model_time" jdbcType="DOUBLE" property="changeModelTime" />
<result column="product_prepare_time" jdbcType="DOUBLE"
property="productPrepareTime" />
<result column="take_down_time" jdbcType="DOUBLE" property="takeDownTime" />
<result column="unit_transport_size" jdbcType="DOUBLE"
property="unitTransportSize" />
<result column="s_resource_id" jdbcType="NUMERIC" property="sResourceId" />
<result column="ad_wf_node_id" jdbcType="NUMERIC" property="adWfNodeId" />
<result column="name" jdbcType="VARCHAR" property="workcenterName" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="create_user" jdbcType="VARCHAR" property="createUser" />
<result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
<result column="modify_user" jdbcType="VARCHAR" property="modifyUser" />
<result column="isdelete" jdbcType="BOOLEAN" property="isdelete" />
<result column="isdefault" jdbcType="BOOLEAN" property="checkDefault" />
<result column="is_key_wc" jdbcType="BOOLEAN" property="isKeyWc" />
<result column="parent_product_id" jdbcType="NUMERIC" property="paproductId" />
<result column="parentProductName" jdbcType="VARCHAR" property="parentProductName" />
<result column="adWfNodeName" jdbcType="VARCHAR" property="adWfNodeName" />
</resultMap>
sql查询语句:
<select id="queryAll" resultMap="BaseResultMapExtral">
select
rwc.* ,mp.name parentProductName,awn.name adWfNodeName
from rccp_workcenter_capacity rwc,m_product mp,ad_wf_node awn
where mp.m_product_id=rwc.parent_product_id and awn.ad_wf_node_id=rwc.ad_wf_node_id
</select>
mybatis中如何将多个表的查询结果,放入结果集中返回的更多相关文章
- 在查询时将查询条件放入Session中,导出时直接根据qpniRGaFiler取查询条件即可
在查询时将查询条件放入Session中,导出时直接根据qpniRGaFiler取查询条件即可
- MyBatis中多对多关系的映射和查询
先说一下需求: 在页面上显示数据库中的所有图书,显示图书的同时,显示出该图书所属的类别(这里一本书可能同时属于多个类别) 创建表: 笔者这里使用 中间表 连接 图书表 和 图书类别表,图书表中 没有使 ...
- Mybatis中的Mapper.xml映射文件sql查询接收多个参数
我们都知道,在Mybatis中的Mapper.xml映射文件可以定制动态SQL,在dao层定义的接口中定义的参数传到xml文件中之后,在查询之前mybatis会对其进行动态解析,通常使用#{}接收 ...
- hive中创建hive-json格式的表及查询
在hive中对于json的数据格式,可以使用get_json_object或json_tuple先解析然后查询. 也可以直接在hive中创建json格式的表结构,这样就可以直接查询,实战如下(hive ...
- MyBatis中动态SQL语句完成多条件查询
一看这标题,我都感觉到是mybatis在动态SQL语句中的多条件查询是多么的强大,不仅让我们用SQL语句完成了对数据库的操作:还通过一些条件选择语句让我们SQL的多条件.动态查询更加容易.简洁.直观. ...
- mybatis中xml字段空判断及模糊查询
由于业务特殊的查询需求,需要下面的这种查询,一直感觉模糊不清,本地测试一下顺便做个总结 贴一段xml代码,如下: <if test="receivedName != null and ...
- 七十七、SAP中数据库操作之多表联合查询
一.我们看一下SFLIGHT表和SPFLI表,表结构如下 二.这2个表的数据如下 三.我们代码如下 四.多表联合查询结果如下
- SSM-MyBatis-05:Mybatis中别名,sql片段和模糊查询加getMapper
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 简单概述一下本讲 别名,sql片段简单写一下,模糊查询多写一点 一.别名 <typeAliases> ...
- 在Mybatis中使用注解@多个參数查询
@Select("SELECT * FROM wc_homework WHERE organization_id=#{classId} ORDER BY createtime DESC LI ...
随机推荐
- Vue.js实现tab切换效果
利用Vue实现简易tab切换效果 1.1 在我们平时浏览网站的时候,经常看到的特效有图片轮播.导航子菜单的隐藏.tab标签的切换等等.这段时间学习了vue后,开始要写出一些简单的特效. 1.2 实现思 ...
- spark-submit --files 动态加载外部资源文件
在做spark时,有些时候需要加载资源文件,需要在driver或者worker端访问.在client模式下可以使用IO流直接读取,但是在cluster模式下却不能直接读取,需要如下代码: val is ...
- sudo passwd root:没有相关指令
在linux里如果想要修改密码,就输入这个指令,但是会出现没找到这个指令,是因为环境变量里没有passwd. 解决:查找passwd的位置,sudo find / -name passwd 然后进入p ...
- Jenkins配置发送邮件步骤
Jenkins配置邮件步骤,以下我是以腾讯企业邮箱账号作为演示 1.配置Jenkins系统管理员邮件地址: 下拉找到以下位置 2.配置邮件通知 继续下拉,找到邮件配置.输入SMTp服务器以及邮箱后缀, ...
- maven项目打包跳过单元测试
在pom.xml中添加一下代码: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifact ...
- 使用 Consul 作为 Python 微服务的配置中心
使用 Consul 作为 Python 微服务的配置中心 Consul 作为数据中心,提供了 k/v 存储的功能,我们可以利用这个功能为 Python 微服务提供配置中心. Consul 提供了 HT ...
- ll问题
不能直接用ll 要用__int64 (64和int 之间无空格) #define ll __int64
- 分布式全文搜索引擎(ElasticSearch)
1. ElasticSearch介绍(简称ES) ES即为了解决原生Lucene使用的不足,优化Lucene的调用方式,并实现了高可用的分布式集群的搜索方案. 首先,ES的索引库管理支持依然是基于Ap ...
- Asp.net Core CORS 跨域
本文主要介绍在Asp.net Core采用CORS方式解决跨域 关于跨域的原理介绍可参考Asp.net Web API 解决跨域详解 1 在Startup添加允许跨域的策略 services.AddC ...
- linux中用户环境变量问题
修改所有用户的环境变量:/etc/profile文件 只修改root用户的环境变量:~/.bashrc文件 只修改某个非root用户的环境变量:/home/非root用户名/.bashrc文件