1.批量添加

jsp

<form id="form1" action="${pageContext.request.contextPath}/order/addOrder" method="post"><input type="hidden" name="cartItemIds" value="${cartItemIds}"/><input type="hidden" name="total" value="" id="total2"/>
<table width="95%" align="center" cellpadding="0" cellspacing="0"><tr bgcolor="#efeae5"><td width="400px" colspan="5"><span style="font-weight: 900;">生成订单</span></td></tr><tr align="center"><td width="10%">&nbsp;</td><td width="50%">图书名称</td><td>单价</td><td>数量</td><td>小计</td></tr><c:forEach items="${cartitems}" var="cartitems"><tr align="center"><td align="right"><a class="linkImage" href="/book/getBookById?bid=${cartitems.book.bid }"><img border="0" width="54" align="top" src="<c:url value='/images/${cartitems.book.image_b }'/>"/></a></td><td align="left"><a href="/book/getBookById?bid=${cartitems.book.bid }"><span>${cartitems.book.bname}</span></a></td><td>&yen;${cartitems.book.currPrice}</td><td>${cartitems.quantity }</td><td><span class="price_n">&yen;<span class="subtotal">${cartitems.subtotal }</span></span></td></tr></c:forEach><tr><td colspan="6" align="right"><span>总计:</span><span class="price_t">&yen;<span id="total"></span></span></td></tr><tr><td colspan="5" bgcolor="#efeae5"><span style="font-weight: 900">收货地址</span></td></tr><tr><td colspan="6"><input id="addr" type="text" name="address" value="北京市 昌平区 西三旗 金燕龙办公楼1层 异想天开 张三爷"/></td></tr><tr><td style="border-top-width: 4px;" colspan="5" align="right"><a id="linkSubmit" href="javascript:addOrder();">提交订单</a></td></tr>
</table>
</form>

Controller层获取页面提交的信息

//添加订单@RequestMapping("/addOrder")public String addOrder(HttpServletRequest request,Cartitem cartitem){//获取字符串String s=request.getParameter("cartItemIds");System.out.println(s);//截取字符串int i2=s.length();String s2=s.substring(1, i2-1);System.out.println(s2);//将字符串切割为数组String[] str=s2.split(", ");System.out.println("------------------");//将切割好的数组赋给cartItemIdscartitem.setCartItemIds(str);System.out.println(Arrays.toString(cartitem.getCartItemIds()));List<Cartitem> cartitems=cartitemService.findCartitemByCartItemId(cartitem);Order order=new Order();//Orderorder.setOid(String.valueOf(UUID.randomUUID()));order.setOrdertime(String.format("%tF %<tT", new Date()));//时间格式化order.setStatus(1);order.setAddress(request.getParameter("address"));order.setOwner((User) request.getSession().getAttribute("sessionUser"));BigDecimal total = new BigDecimal("0");for(Cartitem cartItem : cartitems) {total = total.add(new BigDecimal(cartItem.getSubtotal() + ""));}order.setTotal(total.doubleValue());//设置总计//OrderitemList<OrderItem> orderItems=new ArrayList<OrderItem>();for (Cartitem c:cartitems) {OrderItem orderItem = new OrderItem();orderItem.setOrderItemId(String.valueOf(UUID.randomUUID()));orderItem.setQuantity(c.getQuantity());orderItem.setSubtotal(Double.valueOf(request.getParameter("total")));orderItem.setBook(c.getBook());orderItem.setOrder(order);orderItems.add(orderItem);}order.setOrderItemList(orderItems);//调用serviceorderService.addOrder(order);request.setAttribute("order",order);return "jsps/order/ordersucc";}

service层

//接口
//添加Orderpublic void addOrder(Order order);//实现类/*** 添加Order* */@Transactional@Overridepublic void addOrder(Order order) {//添加OrderorderMapper.addOrder(order);//批量添加OrderItemorderMapper.addOrderitem(order);}

dao层

//mapper接口
//批量添加public void addOrderitem(Order order);//mapper.xml
<!--添加Order--><insert id="addOrder" parameterType="com.hlwxy.ssm.model.Order">INSERT INTO t_order (oid,ordertime,total,status,address,uid)VALUES ('${oid}','${ordertime}',${total},${status},'${address}','${owner.uid}')</insert><!--批量添加OrderItem--><insert id="addOrderitem" parameterType="com.hlwxy.ssm.model.Order">INSERT INTO t_orderitem (orderItemId,quantity,subtotal,bid,bname,currPrice,image_b,oid)VALUES<foreach collection="orderItemList" item="orderItemList" index="index" separator=",">('${orderItemList.orderItemId}',${orderItemList.quantity},${orderItemList.subtotal},'${orderItemList.book.bid}','${orderItemList.book.bname}',${orderItemList.book.currPrice},'${orderItemList.book.image_b}','${orderItemList.order.oid}')</foreach></insert>

2.批量删除

jsp提交数组

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>cartlist.jsp</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script src="<c:url value='/jquery/jquery-1.5.1.js'/>"></script><script src="<c:url value='/jsps/js/round/round.js'/>"></script><link rel="stylesheet" type="text/css" href="<c:url value='/jsps/css/cart/list.css'/>">
<script type="text/javascript">
$(function() {showTotal();//显示合计// 给全选按钮添加点击事件$("#selectAll").click(function() {var flag = $(this).attr("checked");//获取全选的状态setAll(flag);//让所有条目复选框与全选同步setJieSuanStyle(flag);//让结算按钮与全选同步});// 给条目复选框添加事件$(":checkbox[name=checkboxBtn]").click(function() {var selectedCount = $(":checkbox[name=checkboxBtn][checked=true]").length;//被勾选复选框个数var allCount = $(":checkbox[name=checkboxBtn]").length;//所有条目复选框个数if(selectedCount == allCount) {//全选了$("#selectAll").attr("checked", true);//勾选全选复选框setJieSuanStyle(true);//使结算按钮可用} else if(selectedCount == 0) {//全撤消了$("#selectAll").attr("checked", false);//撤消全选复选框setJieSuanStyle(false);//使结算按钮不可用} else {//未全选$("#selectAll").attr("checked", false);//撤消全选复选框setJieSuanStyle(true);//使结算按钮可用}showTotal();//重新计算合计});// 给jia、jian添加事件$(".jian").click(function() {var cartItemId = $(this).attr("id").substring(0, 36);var quantity = Number($("#" + cartItemId + "Quantity").val());if(quantity == 1) {if(confirm("您是否真要删除该条目?")) {location = "/cartitem/deleteCartitemByBid?cartItemId=" + cartItemId;}} else {quantity=quantity-1;location="/cartitem/updateCartItemQuantityByCartItemId?cartItemId=" + cartItemId + "&quantity=" + quantity;}});$(".jia").click(function() {var cartItemId = $(this).attr("id").substring(0, 36);var quantity = Number($("#" + cartItemId + "Quantity").val());quantity=quantity+1;location="/cartitem/updateCartItemQuantityByCartItemId?cartItemId=" + cartItemId + "&quantity=" + quantity;});
});// 设置所有条目复选框
function setAll(flag) {$(":checkbox[name=checkboxBtn]").attr("checked", flag);//让所有条目的复选框与参数flag同步showTotal();//重新设置合计
}// 设置结算按钮的样式
function setJieSuanStyle(flag) {if(flag) {// 有效状态$("#jiesuan").removeClass("kill").addClass("jiesuan");//切换样式$("#jiesuan").unbind("click");//撤消“点击无效”} else {// 无效状态$("#jiesuan").removeClass("jiesuan").addClass("kill");//切换样式$("#jiesuan").click(function() {//使其“点击无效”return false;});}
}// 显示合计
function showTotal() {var total = 0;//创建total,准备累加/*1. 获取所有被勾选的复选框,遍历之*/$(":checkbox[name=checkboxBtn][checked=true]").each(function() {/*2. 通过复选框找到小计*/var subtotal = Number($("#" + $(this).val() + "Subtotal").text());total += subtotal;});/*3. 设置合计*/$("#total").text(round(total,2));
}/*
* 批量删除
* */
function batchDelete() {var cartItemIdArray = new Array();$(":checkbox[name=checkboxBtn][checked=true]").each(function() {cartItemIdArray.push($(this).val());//把复选框的值添加到数组中});location = "/cartitem/deletesCartitemByCartItemId?cartItemIds=" + cartItemIdArray;
}/** 结算*/
function jiesuan() {// 1. 获取所有被选择的条目的id,放到数组中var cartItemIdArray = new Array();$(":checkbox[name=checkboxBtn][checked=true]").each(function() {cartItemIdArray.push($(this).val());//把复选框的值添加到数组中});// 2. 把数组的值toString(),然后赋给表单的cartItemIds这个hidden$("#cartItemIds").val(cartItemIdArray.toString());// 把总计的值,也保存到表单中$("#hiddenTotal").val($("#total").text());// 3. 提交这个表单$("#jieSuanForm").submit();
}</script></head><body><c:choose><%--根据查询的数据显示不同的页面--%><c:when test="${empty cartitems }"><%--不存在商品条系--%><table width="95%" align="center" cellpadding="0" cellspacing="0"><tr><td align="right"><img align="top" src="<c:url value='/images/icon_empty.png'/>"/></td><td><span class="spanEmpty">您的购物车中暂时没有商品</span></td></tr></table></c:when><c:otherwise><%--存在商品条系--%><table width="95%" align="center" cellpadding="0" cellspacing="0"><tr align="center" bgcolor="#efeae5"><td align="left" width="50px"><input type="checkbox" id="selectAll" checked="checked"/><label for="selectAll">全选</label></td><td colspan="2">商品名称</td><td>单价</td><td>数量</td><td>小计</td><td>操作</td></tr><c:forEach items="${cartitems }" var="cartitems"><tr align="center"><td align="left"><input value="${cartitems.cartItemId }" type="checkbox" name="checkboxBtn" checked="checked"/></td><td align="left" width="70px"><a class="linkImage" href="/book/getBookById?bid=${cartitems.book.bid }"><img border="0" width="54" align="top" src="<c:url value='/images/${cartitems.book.image_b }'/>"/></a></td><td align="left" width="400px"><a href="/book/getBookById?bid=${cartitems.book.bid }"><span>${cartitems.book.bname}</span></a></td><td><span>&yen;<span class="currPrice">${cartitems.book.currPrice}</span></span></td><td><a class="jian" id="${cartitems.cartItemId }Jian"></a><input class="quantity" readonly="readonly" id="${cartitems.cartItemId }Quantity" type="text" value="${cartitems.quantity }"/><a class="jia" id="${cartitems.cartItemId }Jia" href="/cartitem/updateCartItemQuantityByCartItemId?cartItemId=${cartitems.cartItemId }&quantity=${cartitems.quantity +1}"></a></td><td width="100px"><%--虽然在Cartitem类中没有subtotal属性,但在Cartitem类中提供了subtotal的get方法,所以在subtotal中可以.到--%><span class="price_n">&yen;<span class="subTotal" id="${cartitems.cartItemId }Subtotal">${cartitems.subtotal }</span></span></td><td><a href="/cartitem/deleteCartitemByBid?bid=${cartitems.book.bid }">删除</a></td></tr></c:forEach><tr><td colspan="4" class="tdBatchDelete"><a href="javascript:batchDelete();">批量删除</a><br/><br/><label>${error.cartitem }</label></td><td colspan="3" align="right" class="tdTotal"><span>总计:</span><span class="price_t">&yen;<span id="total"></span></span></td></tr><tr><td colspan="7" align="right"><a href="javascript:jiesuan();" id="jiesuan" class="jiesuan"></a></td></tr></table><form id="jieSuanForm" action="/cartitem/showitem" method="post"><input type="hidden" name="cartItemIds" id="cartItemIds"/><input type="hidden" name="total" id="hiddenTotal"/></form></c:otherwise></c:choose></body>
</html>

Controller接受条件(我们用id的数组为例)

/*** 批量删除商品条系* */@RequestMapping("/deletesCartitemByCartItemId")public String deletesCartitemByCartItemId(Cartitem cartitem,HttpServletRequest request){User user = (User)request.getSession().getAttribute("sessionUser");cartitem.setUser(user);cartitemService.deletesCartitemByCartItemId(cartitem,request);List<Cartitem> cartitems=cartitemService.findCartitemByUser(cartitem);request.setAttribute("cartitems",cartitems);//保存到request域return "jsps/cart/list";}

select层

//接口
//批量删除商品条系public void deletesCartitemByCartItemId(Cartitem cartitem, HttpServletRequest request);//实现类
/*** 批量删除商品条系* */@Overridepublic void deletesCartitemByCartItemId(Cartitem cartitem,HttpServletRequest request) {Map<String,String> error=new HashMap<String, String>();try {cartitemMapper.deletesCartitemByCartItemId(cartitem);}catch (Exception e){error.put("cartitem","请勾选您要删除的商品");request.setAttribute("error", error);}}

dao层

mapper接口
//批量删除商品条系public void deletesCartitemByCartItemId(Cartitem cartitem);//mapper.xml
<!--批量删除删除商品条系--><delete id="deletesCartitemByCartItemId" parameterType="com.hlwxy.ssm.model.Cartitem">DELETE FROM t_cartitemWHERE cartItemId IN<foreach collection="cartItemIds" item="item" open="(" separator="," close=")">'${item}'</foreach></delete>

感谢大家的支持,希望能够帮助到您!
每天进步一点点!

ssm框架+MySQL批量添加和删除相关推荐

  1. 基于SSM框架+MySQL的超市订单管理系统【源码+文档+PPT】

    目录 1.系统需求分析 1.1 系统功能分析 1.2 系统功能需求 1.3 系统性能需求 2.数据库设计 2.1 数据库需求分析 3.数据库物理结构设计 4.各功能模块的设计与实现 4.1 开发框架 ...

  2. 教育培训课程报名管理系统(学生、教师、管理员)+SSM框架+mysql+tomcat+Maven项目(毕设学习)

    教育培训课程报名管理系统(学生.教师.管理员)+SSM框架+mysql+tomcat+Maven项目(毕设学习)可以用于学习SSM.maven项目入门 可以用于课程设计.毕业设计的知识点入门学习 提示 ...

  3. 旅游系统(SSM框架+MySQL+Redis+VUE)后端代码

    旅游系统(SSM框架+MySQL+Redis+VUE)后端代码 文章目录 旅游系统(SSM框架+MySQL+Redis+VUE)后端代码 Controller 登录 注册 路线 邮件 退出 头部信息 ...

  4. ef 批量保存 oracle,mybatis-oracle与mysql批量添加

    mybatis-oracle与mysql批量添加 1.oracle批量添加 insert into CRITERION_CODE_INSPECT (ID, CRITERION_CODE, CRITER ...

  5. 毕业设计——音乐播放系统 可以自己上传歌曲 SSM框架 MYSQL数据库 功能齐全

    音乐播放系统 可以自己上传歌曲 SSM框架 MYSQL数据库 功能齐全 可以注册账号 登录 在线上传歌曲 发表评论 在线听音乐 登录 注册 首页 播放音乐以及在线评论 个人后台页面 查看我发布的以及上 ...

  6. 旅游系统(SSM框架+MySQL+Redis+VUE)前端页面代码

    旅游系统(SSM框架+MySQL+Redis+VUE)前端页面代码 文章目录 旅游系统(SSM框架+MySQL+Redis+VUE)前端页面代码 主页 登录页 注册页 注册成功 头部 尾部 收藏 我的 ...

  7. linux删除相同用户,Linux 批量添加和删除用户

    Linux批量添加和删除用户 一,工具作用Linux批量添加和删除用户 在Linux用户管理中,经常需要用到批量添加或删除用户:如果用 useradd或adduser来添加大量用户,对系统管理员的体力 ...

  8. SSM通用活动报名系统(会员、管理员)+SSM框架+mysql+tomcat+Maven项目(毕设学习)可以用于学习SSM、maven项目入门

    SSM通用活动报名系统(会员.管理员)+SSM框架+mysql+tomcat+Maven项目(毕设学习)可以用于学习SSM.maven项目入门 可以用于课程设计.毕业设计的知识点入门学习 提示:此资源 ...

  9. SSM框架之批量增加示例(同步请求jsp视图解析)

    准备环境:SSM框架+JDK8/JDK7+MySQL5.7+MAVEN3以上+Tomcat8/7应用服务器 示例说明: 分发给用户优惠券,通过checkbox选中批量分发,对应也就是批量增加. 对于公 ...

最新文章

  1. CM5.x配置spark错误解决
  2. mongodb 安装pymongo 驱动
  3. BZOJ1030: [JSOI2007]文本生成器
  4. js返回上一页并刷新代码整理
  5. logo、展板、彩页、手提袋总结
  6. 反恐精英起源服务器文件在哪,反恐精英:起源人物模型放哪里
  7. addeventlistener事件参数_从Chrome源码看浏览器的事件机制
  8. 【python】 合并列表的方法
  9. 求素数--筛选法和打表
  10. requestparam注解_源码剖析@ApiImplicitParam对@RequestParam的required属性的侵入性
  11. 趣谈网络协议-数据中心
  12. 用for循环打印出大写字母的ASCII码对照表
  13. 怎么给word文档注音_如何给Word文档中的汉字加拼音?一键加拼音超级方便
  14. cpu天梯图2021 cpu性能排行榜2021最新版
  15. 航摄比例尺、成图比例尺、地面分辨率与航摄设计用图比例尺
  16. 上传图片到腾讯云(海外服务器)com.qcloud5.5.4版本
  17. java 文件加密_一个JAVA文件加密代码
  18. 2016~2022 文字生成图像 Text to image(T2I)论文整理 阅读路线和阅读指南
  19. 倍福Twincat 3.0软件的EAP通讯(补充)
  20. Jmeter压测运行原理,这些你知道么?

热门文章

  1. 二进制转化成ascll_用java将二进制转换ascii码
  2. Java API操作HDFS
  3. 嵌入式linux轻量级sshd服务工具Dropbear移植
  4. 【沃顿商学院学习笔记】商业基础——Accounting:00基础背景
  5. python微信搭建,教你用python一步一步搭建微信公眾平台(一)
  6. goland 使用 gorm 执行 存储过程 : go语言 执行存储过程
  7. flink1.12.7+hudi 问题总结
  8. autoCAD 符号表
  9. k-shingles与minhash技术
  10. getLastKnownLocation 返回null