写作于
2022-10-14 17:16:51
发布于
2022-11-21 20:10:40

# 多表查询如果字段名重复则需要显示声明该字段属于那张表SELECT oid,uid,recv_name AS recvName,order_time AS orderTime,title,image,price,num,statusFROM t_order LEFT JOIN t_order_item on t_order.oid=t_order_item.oidWHERE uid=#{uid}ORDER BY t_order.order_time DESC
VO:Value Object,值对象。当进行SELECT查询时,查询的结果属于多张表中的内容,此时发现结果集不能使用某个POJI实体类来接受,POJO实体类不能包含多表查询出来的结果。解决方式是:重新构建一个新的对象用于存储所查询出来的结构集对应的映射,所以把这样的对象称之为值对象
package com.cy.store.vo;import java.math.BigInteger;
import java.util.Date;
import java.util.Objects;public class OrderVO {private Integer oid;private Integer uid;private String recvName;private Date orderTime;private String title;private String image;private BigInteger totalPrice;private Integer num;private Integer status;//...
}
OrderVO
抽象方法设计
/*** 根据uid查询oids* @param uid uid* @return oids*/Integer[] findOidsByUid(Integer uid);/*** 根据oid查询OrderVO* @param oid oid* @return List*/List findVOByOid(Integer oid);
OrderMapper–findVOByOid
单元测试。
@Testvoid findOidsByUid(){Integer[] oids = orderMapper.findOidsByUid(8);for (Integer o:oids){System.out.println(o);}}@Testvoid findVOByOid(){List list = orderMapper.findVOByOid(3);for (OrderVO o:list){System.out.println(o);}}
OrderMapperTests–findVOByOid
无
1.先编写业务层的接口方法。
/*** 根据用户id获取用户的订单* @param uid 用户id* @return 用户的订单 */Map> getVOByUid(Integer uid);
2.在实现类实现此方法。
@Overridepublic Map> getVOByUid(Integer uid) {Map> map=new LinkedHashMap<>();Integer[] oids = orderMapper.findOidsByUid(uid);for (Integer o:oids){map.put(o,orderMapper.findVOByOid(o));}return map;}
OrderService–getVOByUid
@Testpublic void getVOByUid(){Map> map = orderService.getVOByUid(8);System.out.println(map);}
OrderServiceTests–getVOByUid
无
1.设计请求。
/orders
session
GET
JsonResult
2.实现请求处理方法的代码
@RequestMapping({"","/"})public JsonResult
CartController–getVOByUid
3.先登录在进行功能测试
http://localhost:8080/orders

cart.html
1.注释掉cart.js文件
2.form表单结果。action=“orderConfirm.html”、tbody标签的额id="cart-list"属性、"结算按钮"改成type="button"属性值
3.ready()函数来完成自动的ajax请求的条件和处理。
//showCartList$(document).ready(function() {showCartList();});function showCartList() {$("#cart-list").empty();$.ajax({url: "/carts",type: "GET",dataType: "JSON",success: function(json) {let list = json.data;for (let i = 0; i < list.length; i++) {let tr = ''+ ''+ ''+ ' '+ '![]()
'+ '#{title}#{msg} '+ '¥#{realPrice} '+ ''+ ''+ ''+ ''+ ' '+ '¥#{totalPrice} '+ ''+ ''+ ' '+ ' ';tr = tr.replace(/#{cid}/g, list[i].cid);tr = tr.replace(/#{title}/g, list[i].title);tr = tr.replace(/#{image}/g, list[i].image);tr = tr.replace(/#{realPrice}/g, list[i].realPrice);tr = tr.replace(/#{num}/g, list[i].num);tr = tr.replace(/#{totalPrice}/g, list[i].realPrice * list[i].num);if (list[i].realPrice < list[i].price) {tr = tr.replace(/#{msg}/g, "比加入时降价" + (list[i].price - list[i].realPrice) + "元");} else {tr = tr.replace(/#{msg}/g, "");}$("#cart-list").append(tr);}},error: function (xhr){alert("购物车列表数据加载是产生未知的异常,"+xhr.status)}});}//showCartList
cart.html–showCartList

READ–显示购物车列表
下一篇:形容梅花的四字成语