开发者社区> 问答> 正文

将下订单操作写入DAO存在那些漏洞?

将下订单操作写入DAO存在那些漏洞?

展开
收起
游客tysp5f3fs3k22 2022-08-18 08:53:36 3411 0
6 条回答
写回答
取消 提交回答
  • 网站:http://ixiancheng.cn/ 微信订阅号:小马哥学JAVA

    下单操作的时候会存在一些问题,比如说重复提交的问题,以及逻辑处理的时候,存在多个表更新、插入的问题,这个时候最好使用事务来处理,比如中间出错,进行回滚的操作

    2022-11-22 09:38:05
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    下订单操作写入DAO会引起很多问题,比如你在下单时候的业务逻辑交互会出错乱,造成其他DAO的混乱,引起异常报错等。

    2022-10-27 13:39:56
    赞同 展开评论 打赏
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    SpringMVC服务端采用经典的三层架构,即表现层、业务层、持久层,分别采用@Controller、@Service、@Repository进行类注解,比如Controller层负责接收客户端请求,并返回处理结果 image.png Service层负责业务逻辑处理,根据不同功能划分 image.png Persistence持久层负责数据的持久化到数据库,比如 image.png

    而对于下单操作,当然属于业务逻辑的操作,在SpringMVC服务端的三层结构中属于Service业务逻辑层,写在Service层的话不但符合三层架构的规范,也使代码的可读性可维护性大大提高。

    如果写在DAO层,也就是Persistence持久层,那么后期维护时除了要关注Service存在的业务逻辑处理外还要关注Persistence持久层是否也存在业务逻辑,可读性、可维护性大大降低,很容易造成遗漏BUG,或者其他数据问题;另外,通常情况下,下单会伴随着增减库存,增减积分等操作,而Spring事务的注解需要加在Service层来保证整体所有业务逻辑操作的一致性,如果业务逻辑写在DAO层,也就是Persistence持久层的话,数据的一致性就无法保证了,可能还有其他问题,这里暂时没想到

    2022-10-26 14:53:18
    赞同 展开评论 打赏
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    从MVC架构设计角度来说,DAO层负责模型层主要处理数据操作,Service层负责业务逻辑处理,Controller是视图层负责view。每层各司其职,降低业务逻辑的依赖,“高内聚,低耦合”说的就是这个意思。

    下订单应该是业务层逻辑,里面会有很多逻辑交互,比如说“插入订单、检查库存、更新库存、新增物流信息等”,每个处理都是一个DAO,然后在Service层完成业务组装;如果我们把下订单的业务逻辑放在DAO会导致代码逻辑不清晰、扩展性不强、容易导致不必要BUG

    2022-10-26 13:05:37
    赞同 展开评论 打赏
  • 凡事预则立,不预则废

    在俩个不同的DAO对象中均可对book进行操作

    2022-10-24 21:23:36
    赞同 展开评论 打赏
  • 在俩个不同的DAO对象中均可对book进行操作

    2022-08-18 08:57:46
    赞同 展开评论 打赏
滑动查看更多
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载