当前位置: 首页 > news >正文

适合美工的设计网站汽车是怎么做的视频网站

适合美工的设计网站,汽车是怎么做的视频网站,企业网站子页面模板,网站建设的文本事例1.持久层[Mapper] 1.1规划需要执行的SQL语句 1.更新该商品的数量.此SQL语句无需重复开发 update t_cart set num?,modified_user?,modified_time? where cid? 2.首先进行查询需要操作的购物车数据信息【查看该条数据是否存在】 SELECT * FROM t_cart WHERE cid?2.接口…1.持久层[Mapper] 1.1规划需要执行的SQL语句 1.更新该商品的数量.此SQL语句无需重复开发 update t_cart set num?,modified_user?,modified_time? where cid? 2.首先进行查询需要操作的购物车数据信息【查看该条数据是否存在】 SELECT * FROM t_cart WHERE cid?2.接口和抽象方法 在CartMapper接口中添加抽象方法 Cart findByCid(Integer cid);3 编写映射 在CartMapper文件中添加findByCid(Integer cid)方法的映射 select idfindByCid resultMapCartEntityMapselect *from t_cartwhere cid#{cid};/select 4 单元测试 在CartMapperTests测试类中添加findByCid()测试方法 Test public void findByCid() {System.out.println(cartMapper.findByCid(1)); }2.业务层[service] 1规划异常 在更新时产生UpdateException未知异常,此异常类无需再次创建可能该购物车列表数据归属不是登录的用户,抛AccessDeniedException异常,此异常类无需再次创建要查询的数据不存在.抛出CartNotFoundException异常,创建该异常类并使其继承ServiceException /** 购物车数据不存在的异常 */ public class CartNotFoundException extends ServiceException {/**重写ServiceException的所有构造方法*/ }2设计接口和抽象方法及实现 在业务层ICartService接口中添加addNum()抽象方法 1.先判断需要哪些参数,该抽象方法的实现依赖于CartMapper接口的两个方法: updateNumByCid方法.参数是cid,num,String modifiedUser,Date modifiedTime findByCid方法.参数是cid 在业务层中从购物车表查询到该商品的数量,然后再和前端传过来的增加的数量进行求和得到num 所以该方法的参数是cid,uid,username 2.判断一下该方法的返回值: 该方法返回值void.这样的话就需要在前端页面加location.href使该页面自己跳转到自己,实现刷新页面(不建议,每次都加载整个页面,数据量太大了)返回值是Integer类型.这样的话就把数据库中更新后的数量层层传给前端,前端接收后填充到控件中就可以了 /** * 增加用户的购物车中某商品的数量 * param cid * param uid * param username * return 增加成功后新的数量 */ Integer addNum(Integer cid,Integer uid, String username);3.在CartServiceImpl类中实现接口中的抽象方法 /*** 更新用户的购物车数量的数据** 调用了updateNumByCid(cid,num,modifiedUser,modifiedTime)* 和findByCid(cid)* Integer:返回的是最新的购物车数量*/Overridepublic Integer addNum(Integer cid, Integer uid, String username) {Cart result cartMapper.findByCid(cid);if(result null) {throw new CartNotFoundException(购物车数据不存在);} else if(! result.getUid().equals(uid)) {throw new AccessDeniedException(数据非法访问);}Integer num result.getNum() 1;Integer rows cartMapper.updateNumByCid(cid, num, username, new Date());if(rows ! 1) {throw new UpdateException(更新数据失败);}return num;} 3单元测试 就接收个参数,然后业务层将其加一后返回,不需要再测了 3.控制层[Controller] 1处理异常 在BaseController类中添加CartNotFoundException异常类的统一管理 else if (e instanceof CartNotFoundException) {result.setState(4007);result.setMessage(购物车表不存在该商品的异常); }2设计请求 /carts/{cid}/num/addpostPathVariable(“cid”) Integer cid, HttpSession sessionJsonResultInteger 3处理请求 在CartController类中添加处理请求的addNum()方法 PostMapping(/{cid}/add_num)public JsonResultInteger addNum(PathVariable(cid) Integer cid,HttpSession session){Integer data cartService.addNum(cid,getuidFromSession(session),getUsernameFromSession(session));return new JsonResult(OK,data);} 4.前端页面 1.首先确定在showCartList()函数中动态拼接的增加购物车按钮是绑定了addNum()事件如果已经添加无需重复添加 input classnum-btn typebutton value onclickaddNum(#{cid}) /2.在script标签中定义addNum()函数并编写增加购物车数量的逻辑代码 //添加商品按钮function addNum(cid){$.ajax({url:/cart/cid/add_num,type: POST,dataType:JSON,success(e){console.log(e.state)if (e.state200){//input idgoodsCount#{cid} typetext size2 readonlyreadonly classnum-text value#{num}//修改商品数量// val(): 因为这里使用val是为了修改value的值$(#goodsCount cid).val(e.data);//td¥span idgoodsPrice#{cid}#{singlePrice}/span/td//商品单价//html():选中所选元素的html可能有html元素let singlePrice$(#goodsPricecid).html();let totalPricesinglePrice*e.data;//表示将总数加入页面中//tdspan idgoodsCast#{cid}#{totalPrice}/span/td$(#goodsCastcid).html(totalPrice);}else{alert(增加购物车数据失败e.message)}},error(xhr){alert(增加购物车商品数据加载产生未知的异常xhr.status)}})} 1.持久层[Mapper] 1.规划需要执行的SQL语句 1.判断当前要删除的商品是否还存在[原来的findById] selct * from t_cart where uid? and cid? 2.如果该商品在该用户的购物车中本来就有则对其的操作是进行数据更新[原来的updateNumByCid] 2.接口和抽象方法 1.在CartMapper.java /*** 修改购物车数据中商品的数量* param cid 购物车数据的id* param num 新的数量* param modifiedUser 修改执行人* param modifiedTime 修改时间* return 受影响的行数*/Integer updateNumByCid(Param(cid) Integer cid,Param(num) Integer num,Param(modifiedUser) String modifiedUser,Param(modifiedTime) Date modifiedTime);/*** 根据用户id和商品id查询购物车中的数据* param uid 用户id* param pid 商品id* return 匹配的购物车数据如果该用户的购物车中并没有该商品则返回null*/Cart findByUidAndPid(Param(uid) Integer uid,Param(pid) Integer pid);3.编写映射 !-- 修改购物车数据中商品的数量--update idupdateNumByCidupdate t_cart setnum#{num},modified_user#{modifiedUser},modified_time#{modifiedTime}where cid#{cid}/update!-- 根据用户id和商品id查询购物车中的数据--select idfindByUidAndPid resultMapCartEntityMapselect * from t_cart where uid#{uid} AND pid#{pid}/select4.测试代码 此测试代码可以省略 2.业务层[Service] 1.规划异常 在删除的时候可能该数据被删除造成删除异常在更新时产生UpdateException未知异常,此异常类无需再次创建可能该购物车列表数据归属不是登录的用户,抛AccessDeniedException异常,此异常类无需再次创建要查询的数据不存在.抛出CartNotFoundException异常,创建该异常类并使其继承ServiceException 2.设计接口和抽象方法的实现 1.ICartService /*** 更新用户的购物车数据--减少* param cid* param uid* param username* return*/Integer subNum(Integer cid,Integer uid,String username); 2.ICartServiceImpl /*** 更新用户的购物车数据--减少* param cid* param uid* param username* return*/Overridepublic Integer subNum(Integer cid, Integer uid, String username) {Cart result cartMapper.findByCid(cid);if(resultnull){throw new CartNotFoundException(购物车数据不存在);}if(!result.getUid().equals(uid)){throw new AccessDeniedException(数据非法访问);}Integer numresult.getNum()-1;Integer rows cartMapper.updateNumByCid(cid, num, username, new Date());if(rows!1){throw new UpdateException(更新数据失败);}return num;} 3.单元测试 Testpublic void subNum(){cartService.subNum(3,7,管理员);} 3.控制层[Controller] 1.处理异常 前面增加功能已经实现不用重复执行 2.设计请求 /cart/sub_num/{cid}postPathVariable(cid) Integer cid,HttpSession sessionJsonResultInteger 3.处理请求 /*** 在购物车列表中减少商品数量* param cid* param session* return*/PostMapping(/sub_num/{cid})public JsonResultInteger subNum(PathVariable(cid) Integer cid,HttpSession session){Integer data cartService.subNum(cid,getuidFromSession(session),getUsernameFromSession(session));return new JsonResult(OK,data);} 4.前端页面 1.首先确定在showCartList()函数中动态拼接的增加购物车按钮是绑定了reduceNum()事件如果已经添加无需重复添加 input idprice-#{cid} typebutton value- classnum-btn onclickreduceNum(#{cid}) / function reduceNum(cid) {$.ajax({url: /cart/sub_num/cid,type: POST,dataType: JSON,success: function(json) {if (json.state 200) {// showCartList();$(#goodsCount cid).val(json.data);let price $(#goodsPrice cid).html();let totalPrice price * json.data;$(#goodsCast cid).html(totalPrice);} else {alert(修改商品数量失败 json.message);}},error: function(xhr) {alert(您的登录信息已经过期请重新登录HTTP响应码 xhr.status);location.href login.html;}});}
http://www.hkea.cn/news/14299822/

相关文章:

  • 公司网站建设佛山哪家专业110平方装修全包价格
  • 服务网站建设方案阿里云购买域名后怎么建网站
  • 个人作品展示 网站北京高端别墅设计公司
  • 一流高职院校建设计划项目网站建设银行网站注册用户名
  • 电子商务网站建设的步骤一般为做微信公众号用什么网站
  • 陕西省建设建设监理协会网站如何c2c网站建设
  • 社交网站的建设现状网站建设i
  • 响应式网站建设资讯全国工程信息平台
  • 做营销网站 如何让商家入驻wordpress 比较好的插件
  • 创建网站超市中小企业网站制作塞尼铁克
  • 德阳住房和城乡建设局网站网站的百度百科怎么做
  • 网站网络营销wordpress菜单种类
  • 英文网站推广天津建设网站官网
  • 免费网站建设ydwzjs公司做网站的作用
  • 企业建网站计什么科目一个wordpress两个站点
  • 网站文章更新时间一个设计网站多少钱
  • 做网站要注册公司么网站支付可以做二清
  • 建设银行海外招聘网站做排名的网站
  • 自己建设的网站有管理后台的登录怎样做旅游城市住宿网站
  • 先做个在线电影网站该怎么做hyein seo
  • 广州黄埔区网站建设苏州北京网站建设
  • 广州市住房建设局网站拼团手机网站开发
  • 广东省住房与城乡建设部网站wordpress开启多站点功
  • 关于网站开发的技术博客重庆轨道交通最新
  • 南京网站排名安卓做网站教程
  • 台州电子商务网站开发网站建站平台
  • 电子商务网站推广怎么做百度关键词排名查询接口
  • 清苑区建设局网站厦门建设银行网站首页
  • seo网站监测网站模板与网站开发
  • 我想做跑腿网站怎么做桂林两江四湖简介