mybatis Sql查询 返回对象或者list数据中包含一个对象的list集合
1. 查询的数据对象
@Data
public class JdOrder implements Serializable{
private Long orderId;
private Long finishTime;
private Integer orderEmt;
private Long orderTime;
private Long parentId;
private String payMonth;
private Integer plus;
private Long popId;
private Long unionId;
private String ext1;
private Integer validCode;
private String hasMore;
//预估佣金
private Double estimateFee;
//商户名称
private String merchantName;
//顾客号码
private String customerId;
**//返回数据要包含的list**
private List<JdSkuList> jdSkuLists;
}
2.返回数据中被包含的list对象
@Data
public class JdSkuList extends JdSkuListKey implements Serializable{
private Double actualCosPrice;
private Double actualFee;
private Double commissionRate;
private Double estimateCosPrice;
private Double estimateFee;
private Double finalRate;
private Long cid1;
private Long frozenSkuNum;
private String pid;
private Long positionId;
private Double price;
private Long cid2;
private Long siteId;
private String skuName;
private Long skuNum;
private Long skuReturnNum;
private Double subSideRate;
private Double subsidyRate;
private Long cid3;
private String unionAlias;
private String unionTag;
private Integer unionTrafficGroup;
private Integer validCode;
private String subUnionId;
private Integer traceType;
private Integer payMonth;
private Long popId;
private String ext1;
private String merchantName;
}
3.resultMap的写法
<resultMap id="BaseResultMap" type="com.luer.JD.bean.JdOrder">
<id column="order_id" property="orderId" jdbcType="BIGINT"/>
<result column="finish_time" property="finishTime" jdbcType="BIGINT"/>
<result column="order_emt" property="orderEmt" jdbcType="INTEGER"/>
<result column="order_time" property="orderTime" jdbcType="BIGINT"/>
<result column="parent_id" property="parentId" jdbcType="BIGINT"/>
<result column="pay_month" property="payMonth" jdbcType="VARCHAR"/>
<result column="plus" property="plus" jdbcType="INTEGER"/>
<result column="pop_id" property="popId" jdbcType="BIGINT"/>
<result column="union_id" property="unionId" jdbcType="BIGINT"/>
<result column="ext1" property="ext1" jdbcType="VARCHAR"/>
<result column="valid_code" property="validCode" jdbcType="INTEGER"/>
<result column="has_more" property="hasMore" jdbcType="VARCHAR"/>
//property="jdSkuLists" ,要与第一步对象中定义的list属性名称一样
<collection property="jdSkuLists" resultMap="JdSkuListResultMap"/>
</resultMap>
<resultMap id="JdSkuListResultMap" type="com.luer.JD.bean.JdSkuList">
<id column="order_id" property="orderId" jdbcType="BIGINT"/>
<id column="sku_id" property="skuId" jdbcType="BIGINT"/>
<result column="actual_cos_price" property="actualCosPrice" jdbcType="DOUBLE"/>
<result column="actual_fee" property="actualFee" jdbcType="DOUBLE"/>
<result column="commission_rate" property="commissionRate" jdbcType="DOUBLE"/>
<result column="estimate_cos_price" property="estimateCosPrice" jdbcType="DOUBLE"/>
<result column="estimate_fee" property="estimateFee" jdbcType="DOUBLE"/>
<result column="final_rate" property="finalRate" jdbcType="DOUBLE"/>
<result column="cid1" property="cid1" jdbcType="BIGINT"/>
<result column="frozen_sku_num" property="frozenSkuNum" jdbcType="BIGINT"/>
<result column="pid" property="pid" jdbcType="VARCHAR"/>
<result column="position_id" property="positionId" jdbcType="BIGINT"/>
<result column="price" property="price" jdbcType="DOUBLE"/>
<result column="cid2" property="cid2" jdbcType="BIGINT"/>
<result column="site_id" property="siteId" jdbcType="BIGINT"/>
<result column="sku_name" property="skuName" jdbcType="VARCHAR"/>
<result column="sku_num" property="skuNum" jdbcType="BIGINT"/>
<result column="sku_return_num" property="skuReturnNum" jdbcType="BIGINT"/>
<result column="sub_side_rate" property="subSideRate" jdbcType="DOUBLE"/>
<result column="subsidy_rate" property="subsidyRate" jdbcType="DOUBLE"/>
<result column="cid3" property="cid3" jdbcType="BIGINT"/>
<result column="union_alias" property="unionAlias" jdbcType="VARCHAR"/>
<result column="union_tag" property="unionTag" jdbcType="VARCHAR"/>
<result column="union_traffic_group" property="unionTrafficGroup" jdbcType="INTEGER"/>
<result column="valid_code" property="validCode" jdbcType="INTEGER"/>
<result column="sub_union_id" property="subUnionId" jdbcType="VARCHAR"/>
<result column="trace_type" property="traceType" jdbcType="INTEGER"/>
<result column="pay_month" property="payMonth" jdbcType="INTEGER"/>
<result column="pop_id" property="popId" jdbcType="BIGINT"/>
<result column="ext1" property="ext1" jdbcType="VARCHAR"/>
</resultMap>
4.定义一个JdSkuList_Column_List,方便多个查询sql中引入不必重复写
<sql id="JdSkuList_Column_List" >
jsl.order_id, jsl.sku_id, jsl.actual_cos_price, jsl.actual_fee, jsl.commission_rate, jsl.estimate_cos_price,
jsl.estimate_fee, jsl.final_rate, jsl.cid1, jsl.frozen_sku_num, jsl.pid, jsl.position_id, jsl.price, jsl.cid2, jsl.site_id,
jsl.sku_name, jsl.sku_num, jsl.sku_return_num, jsl.sub_side_rate, jsl.subsidy_rate, jsl.cid3, jsl.union_alias,
jsl.union_tag, jsl.union_traffic_group, jsl.valid_code, jsl.sub_union_id, jsl.trace_type, jsl.pay_month,
jsl.pop_id, jsl.ext1
</sql>
5.SQL的写法,查询所有的JdOrder ,并包含订单详情JdSkuList的对象集合,引入前面已经定义好的JdSkuList_Column_List
<select id="selectOrder" resultMap="BaseResultMap">
SELECT j.*,<include refid="JdSkuList_Column_List"/> FROM jd_order j
left join jd_sku_list jsl on jsl.order_id=j.order_id
order by j.order_time desc
</select>
6.SQL也可以全部写出,个人喜欢引入的方法,看着清爽,节约资源
<select id="selectOrder" resultMap="BaseResultMap">
SELECT j.*,
jsl.order_id, jsl.sku_id, jsl.actual_cos_price, jsl.actual_fee, jsl.commission_rate, jsl.estimate_cos_price,
jsl.estimate_fee, jsl.final_rate, jsl.cid1, jsl.frozen_sku_num, jsl.pid, jsl.position_id, jsl.price, jsl.cid2, jsl.site_id,
jsl.sku_name, jsl.sku_num, jsl.sku_return_num, jsl.sub_side_rate, jsl.subsidy_rate, jsl.cid3, jsl.union_alias,
jsl.union_tag, jsl.union_traffic_group, jsl.valid_code, jsl.sub_union_id, jsl.trace_type, jsl.pay_month,
jsl.pop_id, jsl.ext1
FROM jd_order j
left join jd_sku_list jsl on jsl.order_id=j.order_id
order by j.order_time desc
</select>
7.通过postman测试发送请求,查询出两条结果,第一条包含jdSkuLists中含有三条数据,第二条包含一条数据,测试成功
{
"code": 200,
"msg": "success",
"data": [
{
"orderId": 86475668988,
"finishTime": 1556167285000,
"orderEmt": 2,
"orderTime": 1555661964000,
"parentId": 0,
"payMonth": "0",
"plus": 0,
"popId": 10084045,
"unionId": 1001466274,
"ext1": "",
"validCode": 17,
"hasMore": "false",
"estimateFee": null,
"merchantName": null,
"customerId": null,
"jdSkuLists": [
{
"orderId": 86475668988,
"skuId": 44132717554,
"actualCosPrice": 0,
"actualFee": 0,
"commissionRate": 5,
"estimateCosPrice": 0,
"estimateFee": 0,
"finalRate": 90,
"cid1": 6144,
"frozenSkuNum": 0,
"pid": "",
"positionId": 0,
"price": 0,
"cid2": 12042,
"siteId": 55000,
"skuName": "珠宝盒 赠品",
"skuNum": 1,
"skuReturnNum": 0,
"subSideRate": 90,
"subsidyRate": 0,
"cid3": 12055,
"unionAlias": "",
"unionTag": "00000000",
"unionTrafficGroup": 4,
"validCode": 17,
"subUnionId": "luertest",
"traceType": 2,
"payMonth": 0,
"popId": 10084045,
"ext1": "",
"merchantName": null
},
{
"orderId": 86475668988,
"skuId": 40043797202,
"actualCosPrice": 29.9,
"actualFee": 5.38,
"commissionRate": 20,
"estimateCosPrice": 29.9,
"estimateFee": 5.38,
"finalRate": 90,
"cid1": 6144,
"frozenSkuNum": 0,
"pid": "",
"positionId": 0,
"price": 129.9,
"cid2": 12042,
"siteId": 55000,
"skuName": "千楼珠宝 淡水珍珠耳钉 紫色 镜面光 高品质 8-9mm馒头珍珠耳环 S925银 一对装 ",
"skuNum": 1,
"skuReturnNum": 0,
"subSideRate": 90,
"subsidyRate": 0,
"cid3": 12055,
"unionAlias": "",
"unionTag": "00000000",
"unionTrafficGroup": 4,
"validCode": 17,
"subUnionId": "luertest",
"traceType": 2,
"payMonth": 0,
"popId": 10084045,
"ext1": "",
"merchantName": null
},
{
"orderId": 86475668988,
"skuId": 44132198245,
"actualCosPrice": 0,
"actualFee": 0,
"commissionRate": 5,
"estimateCosPrice": 0,
"estimateFee": 0,
"finalRate": 90,
"cid1": 6144,
"frozenSkuNum": 0,
"pid": "",
"positionId": 0,
"price": 0,
"cid2": 12042,
"siteId": 55000,
"skuName": "硅胶耳堵 配件 1对 限量赠送 赠完为止",
"skuNum": 1,
"skuReturnNum": 0,
"subSideRate": 90,
"subsidyRate": 0,
"cid3": 12054,
"unionAlias": "",
"unionTag": "00000000",
"unionTrafficGroup": 4,
"validCode": 17,
"subUnionId": "luertest",
"traceType": 2,
"payMonth": 0,
"popId": 10084045,
"ext1": "",
"merchantName": null
}
]
},
{
"orderId": 85562762227,
"finishTime": 1555215459000,
"orderEmt": 2,
"orderTime": 1554715488000,
"parentId": 0,
"payMonth": "0",
"plus": 0,
"popId": 690686,
"unionId": 1001466274,
"ext1": "",
"validCode": 17,
"hasMore": "false",
"estimateFee": null,
"merchantName": null,
"customerId": null,
"jdSkuLists": [
{
"orderId": 85562762227,
"skuId": 43659908490,
"actualCosPrice": 24.8,
"actualFee": 1.12,
"commissionRate": 5,
"estimateCosPrice": 24.8,
"estimateFee": 1.12,
"finalRate": 90,
"cid1": 1320,
"frozenSkuNum": 0,
"pid": "",
"positionId": 0,
"price": 29.8,
"cid2": 5019,
"siteId": 0,
"skuName": "芗园黑糖红枣桂圆茶 便携独立包装台湾姨妈红枣桂圆茶姜汤姜母茶120g",
"skuNum": 1,
"skuReturnNum": 0,
"subSideRate": 90,
"subsidyRate": 0,
"cid3": 5023,
"unionAlias": "",
"unionTag": "00000000",
"unionTrafficGroup": 5,
"validCode": 17,
"subUnionId": "luertest",
"traceType": 2,
"payMonth": 0,
"popId": 690686,
"ext1": "",
"merchantName": null
}
]
}
],
"time": 1558491931288
}
mybatis Sql查询 返回对象或者list数据中包含一个对象的list集合相关推荐
- sql查询返回xml数据之应用【转载】
sql查询返回xml数据之应用[转载] 今天查看邮件,看到一标题Using the FOR XML Clause to Return Query Results as XML,点进去看了看,以前也是知 ...
- JdbcTemplate(操作数据库-查询返回对象、查询返回集合)
JdbcTemplate(操作数据库-查询返回对象.查询返回集合) 1.创建数据库 数据库中有三条记录,数据库名为user_db,数据库表为t_book 2.新建实体类: Book类中的每一个属性对应 ...
- sql查询某字段重复的数据
sql查询某字段重复的数据 最近老是遇到添加新的约束问题,其中就有要求数据不能重复,那么以前哪些测试数据就不方便改了,但是又不能删除,所以为了防止重复,我们只能查询出来一个个改了,那么查询的Sql语句 ...
- 基于简单sql语句的sql解析原理及在大数据中的应用
基于简单sql语句的sql解析原理及在大数据中的应用 李万鸿 老百姓呼吁打土豪分田地.共同富裕,总有一天会实现. 全面了解你所不知道的外星人和宇宙真想:http://pan.baidu.com/s/1 ...
- 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。
题目 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小的那个. Id Email 1 john@example.com 2 bob@example.c ...
- 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。
题目 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个. +----+------------------+ | Id | Email | + ...
- php mysql 字段不为空_Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null?...
Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null? 先上两种实现方式的实例: $querys["house_type_image" ...
- SQL查询EAS工作流任务节点信息(包含审批信息)
SQL查询EAS工作流任务节点信息(包含审批信息) 最近有个需求,需要查出EAS工作流所有节点任务信息,网上找了好久没有找到完整SQL,综合后特意记录一下. 需要查哪个表的审批记录只需把 BizObj ...
- ajax异步获取右侧html,Ajax异步获取html数据中包含js方法无效的解决方法
Ajax异步获取html数据中包含js方法无效的解决方法 页面上使用js写了一个获取后台数据的方法 function data() { var tab = $("#dic") $. ...
最新文章
- Premiere制作VCD视频几个关键设置
- 传指针与指针引用的区别
- Linux Server - NAT
- 中国水处理行业深度监测及投资发展可行性分析报告2022-2027年新版
- 迷宫(AHOI2016初中组T3)
- Python爬虫解析网页的4种方式 值得收藏
- ELMo代码详解(一):数据准备
- JS函数生成器,function* () {}
- 谷歌升级AutoML,可用于大规模图像分类和物体检测
- 做数据可视化有什么好
- 计算机c盘容易满怎么办,C盘快满了怎么办 如何清理C盘垃圾?
- 如何限定apt-get使用IPv4或IPv6协议下载
- 中国计算机学会推荐国际学术会议和期刊目录——A、B、C类期刊会议分级信息
- linux关闭防火墙后台 启动文件,centos——部署springboot项目(含启动脚本编写、开机自启脚本编写、守护进程开机二合一脚本编写)...
- 记测试双十一秒杀活动的坎坷历程
- Justinmind使用教程(3)——管理原型
- 什么是商业智能 (BI) 仪表板?
- Unity Obi Cloth 教學
- DVWA的安装与配置教程+文件
- 思博伦TestCenter Virtual上线AWS Marketplace, 可简化公有云和混合云测试