java - dao接口设计删除一篇文章依据id(数字类型),是否需要传递,作者id?

查看:173
本文介绍了java - dao接口设计删除一篇文章依据id(数字类型),是否需要传递,作者id?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

大家好!我在写一个个人博客,博客平台允许多个作者,现在设计dao接口遇到问题,当我删除一篇文章的时候是否应该传递作者id,代码如下:

方式一

// 防止其他作者通过修改id参数删除文章,需要在service中,先判断该文章是当前作者的
int deleteById(Integer id);

方式二

// 删除文章,依据编号和作者编号
int deleteByIdAndAuthorId(Integer id, Integer authorId);

请问该怎么做,给我点建议?

解决方案

我个人的想法是两种实现思路
第一种 dao层你做方式二这样的,这样你在service通过session取到操作用户的id之后,在dao层操作数据库时加上作者id,给前端的接口是传文章id过来后端
第二种 dao层做方式一的,在service层取一下文章id对应的作者id,判断一下操作用户id和作者id是否相符,相符就调用dao层删除,不相符就返回错误,前端的接口一样还是传文章id过来

没注意你的注释哈
那么我再解释一下我的想法吧,我觉得你提的方式一比较好,首先在service做判断逻辑,Dao层专注于操作数据库,也方便把判断逻辑进行改写,同时还能返回错误操作的提示,如果你说方式二也能判断,也能抛异常告诉用户操作错误,只是把判断放在Dao层而已,那和我说的第二种也类似了,都是先取,再判断,再删,那不如把判断逻辑交给service层来做呢
当然如果删除操作可以返回被操作的数据条数,那也可以选择方式二嘛,如果操作了0条数据,那就代表文章不属于操作用户嘛,但是那样也很蛋疼,删除操作做完了才告诉你这篇文章不属于你、你不可以操作,想起来就怪怪的
一点点个人意见哈,不赞同的话可以继续讨论

这篇关于java - dao接口设计删除一篇文章依据id(数字类型),是否需要传递,作者id?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆