准备环境:SSM框架+JDK8/JDK7+MySQL5.7+MAVEN3以上+Tomcat8/7应用服务器

示例说明:

分发给用户优惠券,通过checkbox选中批量分发,对应也就是批量增加。

对于公司使用freemarket或者jsp或者volocity,有一定的启示意思。

不论视图用的是jsp或者非jsp,都可以参考这个示例。

下面采用的是MVC模式。

简单说下MVC模式吧

MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。

  • Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
  • View(视图) - 视图代表模型包含的数据的可视化。
  • Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。

下面的示例足以验证MVC,可供参考:

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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>发放优惠券</title>
<link href="${APP_PATH}/css/main.css" type="text/css" rel="stylesheet">
<link rel="stylesheet" href="${APP_PATH}/layui/css/layui.css" media="all">
<script src="${APP_PATH}/js/easyui/jquery-1.8.0.min.js"type="text/javascript"></script></head>
<body><div class="layui-container"><div class="layui-row"><h2>发放优惠券</h2><script>function checkAll() {  var all=document.getElementById('all');//获取到点击全选的那个复选框的id  var one=document.getElementsByName('memberId');//获取到复选框的名称  if(all.checked==true){//因为获得的是数组,所以要循环 为每一个checked赋值  for(var i=0;i<one.length;i++){  one[i].checked=true;  }  }else{  for(var j=0;j<one.length;j++){  one[j].checked=false;  }  }  }  $(function(){$("#tishi").click(function(){alert("分发成功");});});</script><div style="margin: 20px 0;"></div><div class="easyui-layout" style="width: 700px; height: 350px;"><divdata-options="region:'center',title:'Main Title',iconCls:'icon-ok'"><form action="${pageContext.request.contextPath}/json" method="post"id="checkform"><table class="easyui-datagrid"data-options="url:'datagrid_data1.json',method:'get',border:false,singleSelect:true,fit:true,fitColumns:true"><thead><tr><th data-options="field:'itemid'" width="80">昵称</th><th data-options="field:'productid'" width="100">手机号</th><th data-options="field:'listprice',align:'right'" width="80">操作</th></tr></thead><c:if test="${list!=null}"><c:forEach items="${list}" var="app"><tr><td>${app.nickName}</td><td>${app.account}</td><td><input type="checkbox" name="memberId"value="${app.memberId}" /></td></tr></c:forEach></c:if></table><input type="hidden" name="hotelNo" id="hotelNo" value="${hotelNo}"/><input type="hidden" name="couponId" id="couponId_to" readonly="readonly" value="${couponId }" /> <input id="all"onclick="checkAll()" type="checkbox" />全选 <br /> <inputtype="submit"  id="tishi" onclick="checkAll()" value="提交" /></form></div></div></div></div><!-- js --><script src="${APP_PATH}/layui/layui.js" charset="utf-8"></script>
<script src="${APP_PATH}/js/layer/layer-v3.1.1/layer/mobile/layer.js"type="text/javascript"></script></body>
</html>

Controller代码:

    /*** 优惠券批量分发给用户* @param qv* @return*/@RequestMapping(value = "json", method = {RequestMethod.POST })public Object save(QueryVo qv,HttpServletRequest request,Model model){String hotelNo = request.getParameter("hotelNo");Hotel hotel = hotelService.queryHotelNoInfo(hotelNo);logger.info("优惠券Id:"+qv.getCouponId());logger.info("所有数组:"+qv.getMemberId());//判断是否为空if (qv.getMemberId()!=null){      int size=java.lang.reflect.Array.getLength(qv.getMemberId());  //获取传过来的数组长度
           System.out.println(size);String memberId[]=qv.getMemberId();//获取数组中的值
           String couponId=qv.getCouponId();//获取优惠券IDfor (int i = 0; i < memberId.length; i++) {AccountCoupon ac = new AccountCoupon();ac.setMemberId(memberId[i]);ac.setCouponId(couponId);ac.setFrom(null);SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");String date = sdf.format(new Date());ac.setReceiveDate(date);ac.setStatus(new Consts().COUPON_UNUSED);//默认状态 "待使用"ac.setUsedDate(null);List<AccountCoupon> list = new ArrayList<AccountCoupon>();list.add(ac);//添加到集合中logger.info("批量分发优惠券成功");accountCouponService.insertAccountCouponInfo(list);//批量插入数据
           }}     model.addAttribute("hotel", hotel);return "/Set/transit4";}

对应的DAO和Service及其实现类和xml如下:

DAO和Service代码相同不变

    //批量插入数据public void insertAccountCouponInfo(@Param("acs")List<AccountCoupon> acs);

Service实现类如下:

    @Overridepublic void insertAccountCouponInfo(List<AccountCoupon> acs) {accountCouponMapper.insertAccountCouponInfo(acs);}

xml:

  <!-- 批量發放优惠券 --><insert id="insertAccountCouponInfo">INSERT INTO `account_coupon` (`member_id`, `coupon_id`, `status`, `receive_date`, `from`, `used_date`)VALUES<foreach collection="acs" item="ac" index="index" separator=",">(#{ac.memberId,jdbcType=VARCHAR}, #{ac.couponId,jdbcType=VARCHAR}, #{ac.status,jdbcType=VARCHAR}, #{ac.receiveDate,jdbcType=VARCHAR}, #{ac.from,jdbcType=VARCHAR} , #{ac.usedDate})</foreach></insert>

对应的实体如下:

public class AccountCoupon {/** 自增主键*/private String id;/** 用户id*/private String memberId;/** 优惠券id*/private String couponId;/** 状态  未领取0   待使用1   已使用2  已过期3  冻结4  已核销5*/private String status;/** 领取优惠券日期*/private String receiveDate;/** 优惠券来源发放或主动领取*/private String from;/** 使用日期*/private String usedDate;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getMemberId() {return memberId;}public void setMemberId(String memberId) {this.memberId = memberId;}public String getCouponId() {return couponId;}public void setCouponId(String couponId) {this.couponId = couponId;}public String getStatus() {return status;}public void setStatus(String status) {this.status = status;}public String getReceiveDate() {return receiveDate;}public void setReceiveDate(String receiveDate) {this.receiveDate = receiveDate;}public String getFrom() {return from;}public void setFrom(String from) {this.from = from;}public String getUsedDate() {return usedDate;}public void setUsedDate(String usedDate) {this.usedDate = usedDate;}}

SSM框架之批量增加示例(同步请求jsp视图解析)相关推荐

  1. SSM框架与聚合api示例(星座配对demo)

    SSM框架与聚合api示例(星座配对demo) api: 链接: 聚合数据接口. 框架:Spring SpringMVC MyBatis 效果图 输入男女星座,提交后得到各项指数 js代码 <s ...

  2. ssm框架访问数据库一直在转圈(请求)

                             ssm框架访问数据库一直在转圈(请求) 今天在写项目的时候遇到了一个问题,和大家分享一下. 先做项目的时候一直放了些假数据.把对象数组传到前台,通过j ...

  3. SSM框架搭建及restful风格的请求方式实例

    1.开发环境搭建以及创建Maven Web项目 参看之前的博文:http://www.cnblogs.com/cainiaomahua/p/6306476.html 2.SSM整合 这次整合有2个配置 ...

  4. SSM框架下后台数据库传送到前端jsp文件中

    SSM框架中后台存储在数据库中的数据,如何传送到前端中使用呢? 前提:SSM框架已经搭好: Category.xml中的SQL语句集已经写好 Category中的GetXX()和SetXX()方法也已 ...

  5. ssm框架+MySQL批量添加和删除

    1.批量添加 jsp <form id="form1" action="${pageContext.request.contextPath}/order/addOr ...

  6. SSM框架实现插入图片显示图片到JSP界面

    话不多说看图 这是自己写的更新页面,点击更新后 在你的数据库表里会出现存储的图片位置,已经报错到数据库中,如下的pic就是,下次在查询或者更新这条数据的话,图片自然就在其中了 首先创建一个Contro ...

  7. SSM框架CRUD操作批量删除批量追加数据(OracleMySQL数据库)

    SSM框架CRUD操作Demo 1.SSM开发环境搭建详见下一章微博 2.定义起始页,基本的超链接完成请求,详见如图 由于时间关系,本人将在本博客中陆续推出高级框架阶段的系列教程,现已经发布如下几篇, ...

  8. ibatis spring框架升级到5.x_Java SSM框架常见面试题,良心整理,

    点击上方蓝色字体,选择"置顶公众号" 优质文章,第一时间送达 文末有送书活动 文末有送书活动 文末有送书活动 一.Spring面试题 1.Spring 在ssm中起什么作用? Sp ...

  9. SSM框架个人学习汇总

    SSM框架汇总 什么是SSM框架 SSM是Spring.SpringMVC.Mybatis三种框架的首字母简写, SSM是目前Java Web开发的最普遍和最高效框架,并且依然在不断发展与完善. SS ...

最新文章

  1. android 屏保_Mac视频屏保随心换!
  2. 入职体检——项目列表(11项)
  3. 追踪社保基金操盘者的足迹-补充
  4. linux cron源码下载,LINUX计划任务管理_AT与crontab
  5. plotly python_使用Plotly for Python时的基本思路
  6. 对当前目录及子目录下的所有源码文件及Makefile打包
  7. asp.net matlab,ASP.NET与MATLAB混合编译以及数据传递【更新中】
  8. Docker网络代理配置
  9. 多区域OSPF的路由重发布
  10. julia语言 调用 java_以编程方式/动态导入Julia中的模块
  11. 听说你想进玩TikTok?
  12. php循环的应用案例,php for循环的实例分享
  13. LeetCode(1108)——IP 地址无效化(JavaScript)
  14. Pandas里面dataframe 中loc和iloc函数的区别
  15. 14.深入分布式缓存:从原理到实践 --- 典型电商应用与缓存
  16. C语言的考试系统,C语言考试系统.doc
  17. 二维数组行列互调显示出来。如:123456789变成147258369。
  18. 蓝牙地址BD_ADDR组成
  19. 二十一世纪大学英语读写教程学习笔记(原文)——2 - Conversational Ballgames(对话风格与球类运动)
  20. 区块链技术在司法行业的服务应用

热门文章

  1. 【SVN】linux下svn命令参数详解(二)
  2. webkit内核 css,纯CSS改变webkit内核浏览器的滚动条样式
  3. php数据 文本_php直接调用文本文件内容
  4. 没有什么效果的html标签,你知道却不常用的HTML标签(一)
  5. 替换某个字符串_postman教程-10-如何在集合中快速查询和替换数据
  6. SpringBoot复习:4(@ImportResource)
  7. springboot mysql行锁_SpringBoot基于数据库实现简单的分布式锁
  8. Swing 实现聊天系统 私发与群发
  9. 浅谈学前教育与计算机,浅谈学前教育专业计算机教学改革与实践.doc
  10. 微信小程序云数据库触底分页加载,下拉无限加载,第一次请求数据随机,随机获取数据库的数据