jsp电子商务系统之六 订单篇1
常规一个商品一个订单
多个商品一个订单
订单只有提交才能结算
付款页面
代码实现,主要是Servlet代码和Service业务层的代码,此处业务层,对多个dao的操作更为明显,体现业务二字!!!
package com.cart.web;
import java.io.IOException;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.cart.entity.Order;
import com.cart.entity.Userinfo;
import com.cart.service.OrderService;
public class OrderServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//1.业务,将购物车中的数据删除,同时增加数据进订单表和订单详情表;
String[]bids=req.getParameterValues("bid");
StringBuilder sbbid=new StringBuilder();
for(String bid:bids){
sbbid.append(bid+",");
}
String sbid=sbbid.substring(0,sbbid.length()-1);
//已经获取了你复选框的订单,到商品id数组中,此处是bids(大家可以是pids/gids等)
OrderService orderService=new OrderService();
Order order=new Order();
Userinfo user=(Userinfo)req.getSession().getAttribute("userinfo");
order.setUserid(user.getId());
order.setContactphone(user.getPhone());
order.setCreatetime(new Date());
order.setTotal(Double.parseDouble(req.getParameter("total")));
order.setShipaddress(user.getAddress());
order.setStatus("未发货");
//orderService.insertOrder(order); //保存订单;
//让service继续去执行保存订单的操作;
orderService.delCartAndSaveOrder(sbid,user,order);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doGet(req, resp);
}
}
package com.cart.service;
import java.sql.*;
import com.cart.dao.*;
import com.cart.dao.impl.*;
import com.cart.entity.Order;
import com.cart.entity.Userinfo;
import com.cart.util.DaoFactory;
public class OrderService {
//1.定义属性:对dao进行操作;
OrderDao orderDao=new OrderDaoImpl();
CartDao cartDao=new CartDaoImpl();
//2.对订单,进行增删该查
public void delCartAndSaveOrder(String sbid,Userinfo user,Order order){
//使用事务操作,业务层可以这样操作,对不同的dao操作;
Connection con=null;
PreparedStatement pstmt=null;
try{
StringBuilder sbSql=new StringBuilder();
sbSql.append("delete from cartitem where uid=? and bid in(");
sbSql.append(sbid);
sbSql.append(")");
String sql=sbSql.toString();
con=DaoFactory.getConnection();
pstmt=con.prepareStatement(sql);
con.setAutoCommit(false);//设置自动提交事务,为false
orderDao.insertOrder(order);//调用插入订单方法;,同时删除原来的购物车数据方法;
Object[] params={user.getId()};
DaoFactory.setParams(pstmt, params);
DaoFactory.executeUpdate(sql, params);
//System.out.println(sbSql);
con.commit();
}catch(Exception e){
e.printStackTrace();
}finally{
DaoFactory.closeAll(null, null, con);
}
}
public int insertOrder(Order order){
//ct.deletecartItem(uid, bid);
return orderDao.insertOrder(order);
}
public int updateOrder(int id){
return orderDao.updateOrder(id);
}
public int deleteOrder(int id){
return orderDao.deleteOrder(id);
}
public Order findOrderById(int id){
return orderDao.findOrderById(id);
}
}
jsp电子商务系统之六 订单篇1的更多相关文章
- ecshop二次开发 使用ecshop电子商务系统的100个小问题
自己从事B4C电子商务开发一段时间了,特别对ecshop深有体会,刚接触的时候不容易理解,下面将根据自己的经验,来总结100条关于操作ecshop电子商务系统的小问题. 1:如何修改网站"欢 ...
- B2C电子商务系统研发——商品SKU分析和设计(二)
转:http://www.cnblogs.com/winstonyan/archive/2012/01/07/2315886.html 上文谈到5种商品SKU设计模式,本文将做些细化说明. 笔者研究过 ...
- ASP.NET之电子商务系统开发-4(二级分类)
一.前言 继上次的订单,这是第四篇.记录一下分类和筛选.这功能是最后做的,因为我完全不懂其原理.后来通过同学的指导(一位很有天赋的同学,比我牛逼一个层次,同样是高三.:D),终于也是完成了.在写这篇博 ...
- 基于Mvc3,Ef,领域驱动电子商务系统的EShop开发
分享自己从代码小工一步步走向搭架子,ING... 简单了解UnitOfWork 摘要: UnitOfWorkUnit Of Work模式,即工作单元,它是一种数据访问模式.它是用来维护一个由已经被业务 ...
- 30个开源电子商务系统(PHP)
osCommerce osCommerce是一款著名的PHP开源电子商务解决方案,提出“开箱即用”的强大功能,使网上商店安装非常方便快捷,并可以作为GNU通用公共授权的开源项目免费发布.osComme ...
- 基于jeesite+android开发 电子商务系统免费教程
下载地址: jeesite免费教程 基于jeesite+android开发 电子商务系统免费教程 基于jeesite+android开发 电子商务系统免费教程 这个教程已经录制完很久了,一直没有公开, ...
- 转:国内外著名开源b2c电子商务系统比较包括asp.net和php
from: http://longdick.iteye.com/blog/1122879 国内外著名开源b2c电子商务系统比较包括asp.net和php 博客分类: 电子商务 国内外著名开源b2c ...
- 换站点Logo图片---轻开电子商务系统(企业入门级B2C站点)
一共2个文件: 显示及上传文件:site/links/img_logo.html 保存图片文件:site/links/img_logo_up1.chtml 在轻开电子商务系统(企业入门级B2C站点)的 ...
- 换今日特价图片---轻开电子商务系统(企业入门级B2C站点)
跟换主页轮播图片一样,一共4个文件: 列表显示文件:site/links/img2.html 加入图片文件:site/links/img2_add.html 加入保存图片文件:site/links/i ...
随机推荐
- 「日常训练」COMMON 约数研究(HYSBZ-1968)
题意与分析 感谢https://www.cnblogs.com/Leohh/p/7512960.html的题解.这题话说原来不在我的训练范围,正好有个同学问我,我就拿来做做.数学果然不是我擅长的啊,这 ...
- ISE 14.7安装教程最新版(Win10安装)——解决Win10安装完后打不开快捷方式的方法
ISE 14.7安装教程最新版(Win10安装) Xilinx ISE是一款世界著名的硬件设计软件,它为设计流程的每一步都提供了直观的生产力增强工具,覆盖从系统级设计探索.软件开发和基于HDL硬件设计 ...
- lintcode174 删除链表中倒数第n个节点
删除链表中倒数第n个节点 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点. 注意事项 链表中的节点个数大于等于n 您在真实的面试中是否遇到过这个题? Yes 样例 给出链表1->2 ...
- Windows10安装GPU版本的Tensorflow
本人电脑配置(公司的)gtx1080ti,下载的的cuda8.0,cudnn6.0,python3.5.3安装完成后,安装tensorflow 1.pip install tensorflow-gpu ...
- ionic 组件学习
利用css列表多选框: <div class="{{Conceal}}" > <ion-checkbox color="secondary" ...
- 软件工程 作业part2 采访
Part 2 采访本课程往届同学(含外校和毕业生). 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下. 我采访的是2016级于淼 ...
- Alpha发布-----欢迎来怼团队
欢迎来怼项目小组—Alpha发布展示 一.小组成员 队长:田继平 成员:葛美义,王伟东,姜珊,邵朔,冉华 ,李圆圆 二.文案+美工展示 链接:http://www.cnblogs.com/wwd199 ...
- Mysql 工作原理
刚开始接触一个新的事物的时候,我觉得很有必要从其工作原理入手,弄清楚这个东西的来龙去脉,为接下来的继续深入学习做好铺垫,掌握好其原理有助于我们从整体上来把握这个东西,并且帮助我们在排错过程中理清思路. ...
- iOS- 显示数据列表最常用的一个控件UITableView
相信做过iOS的程序员,最熟悉的控件一定少不了UITableView,最常用的控件也一定少不了UITableView! 今天分享一下自己对UITableView的实现大体思路,和整理出来的学习笔记! ...
- SQL 单表分页存储过程和单表多字段排序和任意字段分页存储过程
第一种:单表多字段排序分页存储过程 --支持单表多字段查询,多字段排序 create PROCEDURE [dbo].[UP_GetByPageFiledOrder] ( ), --表 ...