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

东莞桥头网站建设南宁网站建设制作后台

东莞桥头网站建设,南宁网站建设制作后台,免费做淘宝客网站,邯郸论坛官网在此之前#xff0c;先来补充一下上一篇文章的一点内容#xff1a;上一篇文章点击此处详看 对于画线的这句话#xff0c;来详细解释一下吧#xff01; 这里面说#xff0c;对于service服务层#xff0c;如果我们所需要实现的业务比较简单的话可以直接在...service接口里面… 在此之前先来补充一下上一篇文章的一点内容上一篇文章点击此处详看 对于画线的这句话来详细解释一下吧 这里面说对于service服务层如果我们所需要实现的业务比较简单的话可以直接在...service接口里面将方法实现而复杂的业务逻辑则需要另外加一个实现类...serviceImpl来实现对应的方法。 这里再补充一下就是我们在后端代码编写的时候Impl实现类并不是必须的其实它只是起到一个使得我们写的业务逻辑代码更加清晰不会使得方法看起来很复杂。 这里可以举一个简单的例子 比如我们正在开发一个外卖管理平台那么我们肯定需要将要出售的菜品展示给用户看我们从平台管理者的角度看最简单的业务就是对菜品的增删查改而这个增删查改的逻辑其实都差不多但它们都是属于对菜品的管理四个功能需要四个方法来实现那么我们在编写代码时肯定先在controller控制层先响应请求然后再到服务层来实现这几个方法而在service服务层我们如果要把四个方法都写在...service类里面的话那就包括实现方法的逻辑代码sql的编写对于sql的编写若是简单的sql倒没什么如果是比较复杂的动态sql那么全部堆在这个service类里面下次需要来修改什么功能的话会相当难找还可能影响到其他的功能。而这时候我们就需要再加一个ImplService实现类在service接口层里面单纯地定义方法再将方法的具体实现代码编写到ImplService实现类里面接着将复杂的动态sql编写到xml文件里面。这样如果我们需要修改哪个方法或sql语句我们就随时可以定位到该位置快速修改不会太冗杂。 当然上面说了并不是所有的业务逻辑都需要Impl实现类就像上一篇文章里面的新增员工业务单纯的实现这个功能只需要一句简单的sql语句我们就不需要另开一个实现类去实现。 好了进入正题我们来分析学习下面的代码开放思路 eg.这是一个关于删除的业务删除套餐 先对其进行需求分析 业务规则 可以一次删除一个套餐也可以批量删除套餐 起售中的套餐不能删除 接口信息         Path: /admin/setmeal         Method: DELETE 接口描述         请求参数Query                 参数名称ids       必须                返回数据                 数据名称code      非必须                                   data       非必须                                   msg       非必须 代码实现controller— service— serviceImpl— mapper— (动态sql--mapper.xml) SetmealController /*** 批量删除套餐* param ids* return */ DeleteMapping ApiOperation(批量删除套餐) public Result delete(RequestParam ListLong ids){setmealService.deleteBatch(ids);return Result.success(); } 首先先编写Controller层封装所需要的数据其中ids我们可以从上面的接口信息知道这是请求参数且是必须的所以delete()括号中需要封装前端提交过来的请求参数接着就需要一个根据ids删除的方法对吧deleteBatch我们可以先将其写出来然后再到setmealService接口层去创建这个方法。最后返回响应结果。 SetmealService /*** 批量删除套餐* param ids */ void deleteBatch(ListLong ids); SetmealService接口层这里面单纯定义方法给Controller控制层调用实现删除功能。 而具体的实现逻辑是在实现类编写。 SetmealServiceImpl /*** 批量删除套餐* param ids */ Transactional public void deleteBatch(ListLong ids) {ids.forEach(id - {Setmeal setmeal setmealMapper.getById(id);if(StatusConstant.ENABLE setmeal.getStatus()){//起售中的套餐不能删除throw new DeletionNotAllowedException(MessageConstant.SETMEAL_ON_SALE);}});ids.forEach(setmealId - {//删除套餐表中的数据setmealMapper.deleteById(setmealId);//删除套餐菜品关系表中的数据setmealDishMapper.deleteBySetmealId(setmealId);}); } SetmealServiceImpl就是所需的实现类在里面编写删除方法的具体逻辑其中if条件语句是在判断要删除的套餐中是否有菜品正在起售如果有则返回错误信息没有则删除套餐中的数据和套餐菜品关系表中的数据。当然这里没有展示套餐表和菜品表。理解其逻辑就行接着在这里面要实现对套餐中菜品信息的遍历和删除需要用到getById和deteleById以及deleteBySetmealId3个方法。它们都将在mapper持久层中实现。 SetmealMapper /*** 根据id查询套餐* param id* return */ Select(select * from setmeal where id #{id}) Setmeal getById(Long id);/*** 根据id删除套餐* param setmealId */ Delete(delete from setmeal where id #{id}) void deleteById(Long setmealId); 这是对套餐表进行查询和删除这里我们可以看到在方法上面直接进行sql的实现这是因为这个业务删除的复杂度并不高所以不需要用到动态sql如果需要的话会另外编写在XML文件中。 SetmealDishMapper /*** 根据套餐id删除套餐和菜品的关联关系* param setmealId */ Delete(delete from setmeal_dish where setmeal_id #{setmealId}) void deleteBySetmealId(Long setmealId); 这是对套餐菜品关系表进行数据的删除 大概的代码开发逻辑就是这样意会意会这也是对上一篇文章所说的业务逻辑代码开放思路的一个具体解释和举例希望对你有帮助
http://www.w-s-a.com/news/942072/

相关文章:

  • 如何用易语言做网站采购系统有哪些
  • 建一个网站容易吗浙江省城乡建设厅官网
  • 奇点网站建设黄骅贴吧百度贴吧
  • 站长爱it如何分析网站设计
  • 服装公司网站定位seo网站关键词
  • 电商网站开发流程文档南京 seo 价格
  • 网站建设任务分解张家港网站制作服务
  • 化州+网站建设网络营销怎么做推广
  • 贵阳网站设计方案阿里云 wordpress 数据库
  • 如何做购物返佣金网站高校 网站建设实施方案
  • 网站如何连接微信支付网页制作与网站开发
  • 地名网站建设方案营销型网站策划书
  • 网站优化排名查询网站图片怎么做的高级
  • 官方网站建设调研报告小程序短链接生成
  • 专做耐克阿迪鞋网站免费微信网站模板下载
  • 视频在线制作网站wordpress怎么调用友情链接
  • 做微商什么是官方网站温州阀门外贸网站建设
  • 申请主机网站网站建设平台合同模板
  • 如何做ps4的游戏视频网站海口网红图书馆
  • 福建住房和城乡建设局网站做私人小网站赚钱吗
  • 物流的网站模板wordpress网站 800cdn
  • 建站公司合肥做精品课程网站需要啥素材
  • 成都三合一网站建设网站建设教程自学网
  • 门户网站跳出率wordpress火车头采集教程
  • 天津做网站的网络公司wordpress免费的模板
  • 有哪些关于校园内网站建设的法律如何申请免费网站空间
  • 玉溪市网站建设龙口网页定制
  • 网站开发都用什么软件上海景观设计公司10强
  • 网站建设氵金手指下拉十二深圳网站建设售后服务
  • 上海网站设计价青海企业网站制作