MVC(Model View Controller)是软件工程中的一种软件架构模式,它把软件系统分为模型、视图和控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

用MVC写购物车的优点:
1. 耦合性低,方便维护,可以利于分工协作

2. 重用性高


1、index.jsp(主界面)

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!--通过taglib引入JSTL标准标签库  --><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><!--通过c标签判断是否在域对象中存在数据--><c:if test="${empty listGoods }"><jsp:forward page="GoodsListServlet"></jsp:forward></c:if><h2 style="text-align:center">${users.username}购物首页</h2><hr/><p>欢迎您!大佬先生--${users.username}<button onclick="tc()">退出登录</button></p><table border="1" cellspacing="0" cellpadding="0" width="100%" ><tr><th>商品编码</th><th>商品名称</th><th>商品价格</th><th>操作</th></tr><!--通过c标签遍历数据  --><c:forEach items="${listGoods}" var="goods"><tr><td>${goods.gid}</td><td>${goods.gname}</td><td>${goods.gprice}</td><td><button onclick="addCart(${goods.gid})">加入购物车</button></td></tr></c:forEach></table><script type="text/javascript">//加入购物车的点击事件function addCart(gid) {//alert(gid);window.location.href="AddCartServlet?gid="+gid;}function tc() {window.location.href="DownLoadServlt";}</script>
</body>
</html>

效果图:

cart.jsp(我的购物车)

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><h1>我的购物车</h1><p><a href="index.jsp">返回首页</a></p><hr/><table border="1" cellspacing="0" cellpadding="0" width="100%" ><tr><th>购物车编码</th><th>商品名称</th><th>商品单价</th><th>商品数量</th><th>商品总价</th><th>操作</th></tr><!--通过c标签遍历数据  --><c:forEach items="${listCarts}" var="cart"><tr><td>${cart.cid}</td><td>${cart.goods.gname}</td><td>${cart.goods.gprice}</td><td>${cart.count}</td><td>${cart.ctotal}</td><td><button>删除</button><button>修改</button></td></tr></c:forEach></table><p style="text-align: right" onclick="buy()"><button>结算</button></p><script type="text/javascript">function buy() {location.href="FindCartInfoServlet";}</script></body>
</html>

效果图:

3.cartfirm.jsp(订单界面)

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><h3>确认订单</h3><h6>确认收货地址</h6><input id="oaddress" type="text" style="width: 100%;height: 40px"/><br/><br/><hr/><h6>确认订单信息</h6><p>商品总件数:${sessionScope.maps.sumCount }</p><h6>商品信息</h6><c:forEach items="${sessionScope.maps.cartByUsersid }" var="mycar"><p><span>${mycar.goods.gname}</span></p></c:forEach><hr/><p><h1>总金额:${sessionScope.maps.sumPrince}</h1></p><input type="button" value="支付" onclick="confirmorder()"/><script type="text/javascript">function confirmorder() {var oaddress = document.getElementById("oaddress").value;if(!oaddress){alert("请输入地址在确认订单");return;}location.href="ConfirmOrderServlet?oaddress="+oaddress;}</script></body>
</html>

底层代码(dao方法)

GoodsDaoImpl.java

package com.zking.mvc.cart.dao.impl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;import com.zking.mvc.cart.dao.IGoodsDao;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.Goods;
import com.zking.mvc.cart.entity.OrderItem;
import com.zking.mvc.cart.entity.Users;
import com.zking.mvc.cart.utils.DBHelper;public class GoodsDaoImpl implements IGoodsDao {@Overridepublic List<Goods> queryGoodsAll() {//1.定义对应的三兄弟以及其他的相关变量Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;String sql = "";Goods  goods = null;List<Goods> list = new ArrayList<Goods>();//2.给对应的对象以及变量赋值try {//获取连接conn = DBHelper.getCon();//sqlsql = "select * from tb_goods";//执行SQL语句ps = conn.prepareStatement(sql);//返回结果集rs = ps.executeQuery();//遍历结果集while(rs.next()) {goods = new Goods();goods.setGid(rs.getInt(1));goods.setGname(rs.getString(2));goods.setGprice(rs.getInt(3));list.add(goods);}} catch (Exception e) {e.printStackTrace();}finally {DBHelper.myClo(conn, ps, rs);}//3.返回结果return list;}@Overridepublic Goods getGoodsByGid(int gid) {//1.定义对应的三兄弟以及其他的相关变量Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;String sql = "";Goods  goods = null;//2.给对应的对象以及变量赋值try {//获取连接conn = DBHelper.getCon();//sqlsql = "select * from tb_goods where gid="+gid;//执行SQL语句ps = conn.prepareStatement(sql);//返回结果集rs = ps.executeQuery();//遍历结果集if(rs.next()) {goods = new Goods();goods.setGid(rs.getInt(1));goods.setGname(rs.getString(2));goods.setGprice(rs.getInt(3));}} catch (Exception e) {e.printStackTrace();}finally {DBHelper.myClo(conn, ps, rs);}//3.返回结果return goods;}@Overridepublic int deleteGoods(int usersid) {// 1.定义对应的三兄弟以及其他的相关变量Connection conn = null;PreparedStatement ps = null;String sql = "";int n = 0;// 2.给对应的对象以及变量赋值try {// 获取连接conn = DBHelper.getCon();// sqlsql = "delete tb_cart where userid="+usersid;// 执行SQL语句ps = conn.prepareStatement(sql);n = ps.executeUpdate();} catch (Exception e) {e.printStackTrace();} finally {DBHelper.myClo(conn, ps, null);}// 3.返回结果return n;}}

CartDaoImpl.java

package com.zking.mvc.cart.dao.impl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;import com.zking.mvc.cart.dao.IcartDao;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.Goods;
import com.zking.mvc.cart.entity.Users;
import com.zking.mvc.cart.utils.DBHelper;public class CartDaoImpl implements IcartDao {@Overridepublic int addCart(Cart cart) {//1.定义对应的三兄弟以及其他的相关变量Connection conn = null;PreparedStatement ps = null;String sql = "";int n = 0;List<Goods> list = new ArrayList<Goods>();//2.给对应的对象以及变量赋值try {//获取连接conn = DBHelper.getCon();//sqlsql ="insert into tb_cart " + " select nvl(max(cid),0)+1 ,?,?,?,? from tb_cart";//执行SQL语句ps = conn.prepareStatement(sql);ps.setInt(1, cart.getGoods().getGid());ps.setInt(2, cart.getUsers().getUserid());ps.setInt(3, cart.getCount());ps.setInt(4, cart.getCtotal());n=ps.executeUpdate();} catch (Exception e) {e.printStackTrace();}finally {DBHelper.myClo(conn, ps, null);}//3.返回结果return n;}@Overridepublic List<Cart> getCartByUsersid(int userid) {//1.定义对应的三兄弟以及其他的相关变量Connection conn = null;PreparedStatement ps = null;String sql = "";Cart c = null;List<Cart> list =  new ArrayList<Cart>();ResultSet rs = null;//2.给对应的对象以及变量赋值try {//获取连接conn = DBHelper.getCon();//sqlsql ="select * from tb_cart where userid = "+userid;ps = conn.prepareStatement(sql);//执行sql语句rs = ps.executeQuery();while(rs.next()) {c = new Cart();c.setCid(rs.getInt(1));c.setGoods(new GoodsDaoImpl().getGoodsByGid(rs.getInt(2)));//更新c.setUsers(new Users(rs.getInt(3),"zkingzz","123"));c.setCount(rs.getInt(4));c.setCtotal();list.add(c);}} catch (Exception e) {e.printStackTrace();}finally {DBHelper.myClo(conn, ps, null);}//3.返回结果return list;}@Overridepublic int editCartByCidAndUserid(Cart cart) {//1.定义对应的三兄弟以及其他的相关变量Connection conn = null;PreparedStatement ps = null;String sql = "";int n = 0;List<Goods> list = new ArrayList<Goods>();//2.给对应的对象以及变量赋值try {//获取连接conn = DBHelper.getCon();//sqlsql ="update tb_cart set ccount = ?,ctotal = ? where cid=? and userid = ?";//执行SQL语句ps = conn.prepareStatement(sql);ps.setInt(1, cart.getCount());ps.setInt(2, cart.getCtotal());ps.setInt(3, cart.getCid());ps.setInt(4, cart.getUsers().getUserid());n=ps.executeUpdate();} catch (Exception e) {e.printStackTrace();}finally {DBHelper.myClo(conn, ps, null);}//3.返回结果return n;}}

OrderDao .java

package com.zking.mvc.cart.dao.impl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;import com.zking.mvc.cart.biz.IGoodsBiz;
import com.zking.mvc.cart.biz.impl.GoodsBizImpl;
import com.zking.mvc.cart.biz.impl.UserBizImpl;
import com.zking.mvc.cart.dao.IOrderDao;
import com.zking.mvc.cart.dao.IOrderItemDao;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.Order;
import com.zking.mvc.cart.entity.OrderItem;
import com.zking.mvc.cart.entity.Users;
import com.zking.mvc.cart.utils.DBHelper;public class OrderDao implements IOrderDao {private IOrderItemDao iod = new OrderItemDaoItem();@Overridepublic int add(Order o) {// 1.定义对应的三兄弟以及其他的相关变量Connection conn = null;PreparedStatement ps = null;String sql = "";int n = 0;// 2.给对应的对象以及变量赋值try {// 获取连接conn = DBHelper.getCon();// sqlsql = "insert into orders " + " select nvl(max(id),0)+1 ,?,?,?,?,? from orders";// 执行SQL语句ps = conn.prepareStatement(sql);ps.setInt(1, o.getOrderid());ps.setInt(2, o.getUsers().getUserid());ps.setInt(3, o.getNum());ps.setInt(4, o.getPrice());ps.setInt(5, o.getOstate());n = ps.executeUpdate();if (n != 0) {if (o.getList() != null) {List<Cart> list = o.getList();for (Cart cart : list) {// 实例化OrderItem orderitem = new OrderItem();// 订单编号orderitem.setOrder(o);// 商品编号orderitem.setGood(cart.getGoods());// 商品数量orderitem.setNum(cart.getCount());// 单价orderitem.setPrice(cart.getCtotal());// 将这些商品保存到订单详情iod.addOrderItems(orderitem);// 生成订单的同时清空购物车IGoodsBiz ig = new GoodsBizImpl();ig.deleteGoods(cart.getUsers().getUserid());}}}} catch (Exception e) {e.printStackTrace();} finally {DBHelper.myClo(conn, ps, null);}// 3.返回结果return n;}@Overridepublic Order getall(int orderid) {// 1.定义对应的三兄弟以及其他的相关变量Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;String sql = "";Order o=null;// 2.给对应的对象以及变量赋值try {// 获取连接conn = DBHelper.getCon();// sqlsql = "select * from orders where orderid="+orderid;// 执行SQL语句ps = conn.prepareStatement(sql);rs = ps.executeQuery();if(rs.next()) {o = new Order();o.setOrderid(rs.getInt(2));o.setUsers(new IUsersDaoImpl().getall(rs.getInt(3)));o.setNum(rs.getInt(4));o.setPrice(rs.getInt(5));o.setOstate(rs.getInt(6));o.setOaddress("浪琴湾");}} catch (Exception e) {e.printStackTrace();} finally {DBHelper.myClo(conn, ps, null);}// 3.返回结果return o;}}

OrderItemDaoItem .java

package com.zking.mvc.cart.dao.impl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;import com.zking.mvc.cart.dao.IOrderItemDao;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.OrderItem;
import com.zking.mvc.cart.utils.DBHelper;public class OrderItemDaoItem implements IOrderItemDao {@Overridepublic int addOrderItems(OrderItem orderitem) {// 1.定义对应的三兄弟以及其他的相关变量Connection conn = null;PreparedStatement ps = null;String sql = "";int n = 0;// 2.给对应的对象以及变量赋值try {// 获取连接conn = DBHelper.getCon();// sqlsql = "insert into ordersitem " + " select nvl(max(id),0)+1 ,?,?,?,? from ordersitem";// 执行SQL语句ps = conn.prepareStatement(sql);ps.setInt(1, orderitem.getOrder().getOrderid());ps.setInt(2,orderitem.getGood().getGid());ps.setInt(3, orderitem.getNum());ps.setInt(4, orderitem.getPrice());n = ps.executeUpdate();} catch (Exception e) {e.printStackTrace();} finally {DBHelper.myClo(conn, ps, null);}// 3.返回结果return n;}@Overridepublic List<OrderItem> getAll() {// 1.定义对应的三兄弟以及其他的相关变量Connection conn = null;PreparedStatement ps = null;String sql = "";ResultSet rs = null;List<OrderItem> lo = new ArrayList<OrderItem>();// 2.给对应的对象以及变量赋值try {// 获取连接conn = DBHelper.getCon();// sqlsql = "select * from ordersitem ";// 执行SQL语句ps = conn.prepareStatement(sql);rs=ps.executeQuery();while(rs.next()) {OrderItem o = new OrderItem();o.setId(rs.getInt(1));o.setOrder(new OrderDao().getall(rs.getInt(2)));o.setGood(new GoodsDaoImpl().getGoodsByGid(rs.getInt(3)));o.setNum(rs.getInt(4));o.setPrice(rs.getInt(5));lo.add(o);}} catch (Exception e) {e.printStackTrace();} finally {DBHelper.myClo(conn, ps, null);}// 3.返回结果return lo;}}

servlet包

AddCartServlet .java

package com.zking.mvc.cart.servlet;import java.io.IOException;
import java.util.ArrayList;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import com.zking.mvc.cart.biz.ICartBiz;
import com.zking.mvc.cart.biz.IGoodsBiz;
import com.zking.mvc.cart.biz.impl.CartBizImpl;
import com.zking.mvc.cart.biz.impl.GoodsBizImpl;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.Goods;
import com.zking.mvc.cart.entity.Users;/*** Servlet implementation class AddCartServlet*/
@WebServlet("/AddCartServlet")
public class AddCartServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//jrebel  热部署插件//加入加购物车的servlet//System.out.println("进来了!");//1.设置字符集编码request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//2.获取location带过来的gidString id = request.getParameter("gid");int gid = 0;if(null!=id) {gid = Integer.valueOf(id);}//数据封装Cart c = new Cart();//将gid Userid ccount ctotal 封装到cart实体对象中IGoodsBiz igb = new GoodsBizImpl();Goods goods = igb.getGoodsByGid(gid);//useridHttpSession session = request.getSession();Users users = (Users)session.getAttribute("users");c.setGoods(goods);c.setUsers(users);c.setCount(1);c.setCtotal();//System.out.println(c);//要想将封装好的购物车信息 保存到数据库中//先获取当前这个登录用户的购物车ICartBiz icb = new CartBizImpl();List<Cart> listCarts =  icb.getCartByUsersid(users.getUserid());//如果购物车List<Cart> listCarts = null;boolean flag = true;//如果该用户第一次进入 构建一个新的购物车 实例化if(null == listCarts ) {listCarts = new ArrayList<Cart>();}else {//非第一次//遍历所有的商品for (Cart cart : listCarts) {//判断当前加入的与购物车已有的进行匹配if(cart.getGoods().getGid() == c.getGoods().getGid()) {//不需要重复添加 修改数量和总价格cart.setCount(cart.getCount()+1);cart.setCtotal();//进行一个数据库的更新icb.editCartByCidAndUserid(cart);flag = false;break;}}}//问题:加入购物车 不是加入集合 而是加到数据库//listCarts.add(c);if(flag) {icb.addCart(c);}//加入后数据要继续更新listCarts =  icb.getCartByUsersid(users.getUserid());session.setAttribute("listCarts", listCarts);response.sendRedirect("cart.jsp");}}

FindCartInfoServlet .java

package com.zking.mvc.cart.servlet;import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import com.zking.mvc.cart.biz.ICartBiz;
import com.zking.mvc.cart.biz.impl.CartBizImpl;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.Users;/*** Servlet implementation class FindCartInfoServlet*/
@WebServlet("/FindCartInfoServlet")
public class FindCartInfoServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1、设置字符集编码request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//获取sessionHttpSession session = request.getSession();//用户Users users = (Users)session.getAttribute("users");//2、直接获取数据库ICartBiz icb = new CartBizImpl();List<Cart> cartByUsersid = icb.getCartByUsersid(users.getUserid());//总件数int sumCount = 0;int sumPrince = 0;//1.商品for (Cart cart : cartByUsersid) {sumCount +=cart.getCount();sumPrince +=cart.getCtotal();}Map<String, Object> maps = new HashMap<String,Object>();maps.put("cartByUsersid", cartByUsersid);maps.put("sumCount", sumCount);maps.put("sumPrince", sumPrince);session.setAttribute("maps", maps);response.sendRedirect("confirmOrder.jsp");}}

GoodsListServlet .java

package com.zking.mvc.cart.servlet;import java.io.IOException;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import com.zking.mvc.cart.biz.IGoodsBiz;
import com.zking.mvc.cart.biz.impl.GoodsBizImpl;
import com.zking.mvc.cart.entity.Goods;
import com.zking.mvc.cart.entity.Users;/*** Servlet implementation class GoodsListServlet*/
@WebServlet("/GoodsListServlet")
public class GoodsListServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//servlet作用:负责处理用户的请求以及响应//1.设置字符集编码request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//2.获取参数//3.封装 调用biz判断IGoodsBiz igb =  new GoodsBizImpl();List<Goods> listGoods = igb.queryGoodsAll();//System.out.println(listGoods);//数据保存在域对象中//获取域对象 sessionHttpSession session =  request.getSession();session.setAttribute("listGoods", listGoods);//获取当前项目的绝对路径String path =  request.getServletContext().getContextPath();// /web_mvc_cart_t280//4.响应response.sendRedirect("index.jsp");}}

ConfirmOrderServlet .java

package com.zking.mvc.cart.servlet;import java.io.IOException;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import com.zking.mvc.cart.biz.ICartBiz;
import com.zking.mvc.cart.biz.IOrderbiz;
import com.zking.mvc.cart.biz.impl.CartBizImpl;
import com.zking.mvc.cart.biz.impl.OrderbizImpl;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.Order;
import com.zking.mvc.cart.entity.Users;
import com.zking.mvc.cart.utils.BaseDao;/*** Servlet implementation class ConfirmOrderServlet*/
@WebServlet("/ConfirmOrderServlet")
public class ConfirmOrderServlet extends HttpServlet {/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1、设置字符集编码request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//获取String oaddress = request.getParameter("oaddress");/*System.out.println(oaddress);*///获取sessionHttpSession session = request.getSession();//用户Users users = (Users)session.getAttribute("users");//2、直接获取数据库ICartBiz icb = new CartBizImpl();List<Cart> cartByUsersid = icb.getCartByUsersid(users.getUserid());//总件数int sumCount = 0;int sumPrince = 0;//1.商品for (Cart cart : cartByUsersid) {sumCount +=cart.getCount();sumPrince +=cart.getCtotal();}//实例化实体类Order order = new Order(new BaseDao().getmaxid("orders", "orderid"),users, sumCount, sumPrince, oaddress, 0);order.setList(cartByUsersid);//实例化bizIOrderbiz io =new OrderbizImpl();int n = io.add(order);if(n>0) {System.out.println("支付成功");response.sendRedirect("Dd.jsp");}else {System.out.println("支付失败");}}}

javaweb之MVC购物车(加入购物车,订单,订单详情)相关推荐

  1. 购物车+确定订单+订单列表

    [[[购物车的主布局]]]] <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&quo ...

  2. 【微服务】Day10(购物车续、新增订单、Leaf)

    续开发购物车功能 续新增sku到购物车 开发业务逻辑层 上次课完成了持久层的代码 下面开发业务逻辑层 创建OmsCartServiceImpl类实现IOmsCartService接口 实现其中方法,先 ...

  3. JavaWeb项目+MVC三层架构+Mysql+Tomcat+汽车配件销售系统前后端+可以用于学习javaweb项目入门

    JavaWeb项目+MVC三层架构+Mysql+Tomcat+汽车配件销售系统前后端+可以用于学习javaweb项目入门 可以用于课程设计.毕业设计的知识点入门学习 提示:此资源仅用于javaweb网 ...

  4. Android商城开发----点击加入购物车,购物车商品的增删减

    Android商城开发----点击加入购物车,购物车商品的增删减 上一章节:[分类页面]点击左侧类别,实现右侧对应类别商品的展示 本文是在上一章节基础上开发的,点击[分类]页面商品的加入购物车按钮,实 ...

  5. 订单管理之获取订单表详情数据数据

    获取订单表详情数据数据 当点击订单详情时,我们需要获取订单详情数据 接口分析 请求方式: GET /meiduo_admin/orders/(?P<pk>\d+)/ 请求参数: 通过请求头 ...

  6. JavaWeb:MVC设计模式

    1. MVC设计模式 MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controll ...

  7. vue外卖十九:商家详情-底部购物车组件,购物车相关vuex状态设计、相关计算、清空购物车+滚动购物车

    一.购物车基础 1)购物车状态设计cartFoods+mutation store/state.js // 所有要管理的状态数据:从页面需求分析出来,最好和api/index.js里的命名相同 exp ...

  8. 淘宝/天猫官方商品/订单订单API接口

    淘宝/天猫官方商品/订单订单API接口 测试地址:点击注册 商品接口列表 产品管理包 Taobao.product.get 获取一个产品的信息 官方文档 Taobao.products.search ...

  9. SpringBoot-项目4-购物车(添加入购物车,购物车列表,购物车商品数量加减操作)

    64. 购物车-创建数据表 # 注意:没有添加相应的not null约束 CREATE TABLE t_cart (cid INT AUTO_INCREMENT COMMENT '购物车数据id',u ...

  10. paypal 根据PAY-XXXX查询订单的详情状态

    这里主要是根据paypay返回的payid做查询订单,paypal的整个流程请参见:https://blog.csdn.net/u014508939/article/details/87929219 ...

最新文章

  1. 深入理解Java虚拟机——第二章——Java内存区域与内存溢出异常
  2. linux 命令 sys_call_table地址,Linux x86_64 内核查找sys_call_table注意事项
  3. jenkins2 multibranch
  4. 2017最新整理传智播客JavaEE第49期 基础就业班
  5. RabbitMQ中RPC的实现及其通信机制
  6. 人眼中亮斑的检测、定位和去除
  7. DataWorks 如何设置调度依赖
  8. CMU Deep Learning 2018 by Bhiksha Raj 学习记录(8)
  9. String.Format用法
  10. tomcat 404错误 原因_软件测试人员定位bug原因的10大妙招分享
  11. Python SQLite教程
  12. YARN调试过程中的常见问题
  13. Codeforces Round #426 (Div. 2) C. The Meaningless Game
  14. Unity 第三人称人物移动
  15. 重启计算机后ip丢失,win10系统重启后ip丢失的处理步骤
  16. 程序员裸辞,利用1个月时间全力找工作,怎么样?
  17. (人才测评)什么是创造力?如何提高创造力?
  18. 消防报警系统服务器,广东火灾报警UL真诚服务
  19. python获取登录按钮_用Python实现一个最新QQ办公版(TIM)的登录界面
  20. pandas安装完成后,报错:ImportError

热门文章

  1. 2.7. Aggregate Functions
  2. 再也不怕女朋友问我二分查找了!【手绘漫画】图解二分查找(修订版)(LeetCode 704题)
  3. SQL注入闯关第二关---第四关
  4. 基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了
  5. navicat mysql本地连接_MySQL | 使用 Navicat 新建本地连接 mysql 出现的问题
  6. 论文阅读笔记 | MLP系列——AS-MLP
  7. 质因数分解(c语言)
  8. 数学建模:MATLAB(入门学习+我的第一课)
  9. C++ 演奏《起风了》
  10. 强大的word插件:不坑盒子下载安装使用图文教程(最终版)