java - dao接口设计删除一篇文章依据id(数字类型),是否需要传递,作者id?
PHPz
PHPz 2017-04-18 10:25:34
0
3
535

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

方式一

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

方式二

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

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

PHPz
PHPz

学习是最好的投资!

모든 응답(3)
阿神

제 개인적인 생각은 두 가지 구현 아이디어입니다
첫 번째는 dao 레이어에서 하는 방법이고, 두 번째 방법은 이렇게 서비스가 세션을 통해 운영 사용자의 ID를 얻은 후입니다. , dao 레이어에서 데이터베이스를 운영할 때 작성자를 추가하고, 프런트엔드에 대한 인터페이스는 기사 ID를 백엔드에 전달하는 것입니다.
두 번째 dao 레이어는 첫 번째 방식으로 수행됩니다. 서비스 레이어에서 기사 ID에 해당하는 작성자 ID를 가져와서 운영 사용자 ID와 작성자 ID가 일치하는지 판단합니다. 일치하지 않으면 dao 레이어를 호출하면 오류가 반환됩니다. . 프런트엔드 인터페이스는 여전히 기사 ID

를 전달합니다.

귀하의 의견을 고려하지 않았습니다
그러면 제 생각을 다시 설명하겠습니다. 먼저 말씀하신 방법이 더 나은 것 같습니다. Dao 계층은 데이터베이스 운영에 중점을 둡니다. 이는 판단을 내리는 데에도 편리합니다. 동시에 잘못된 작업에 대한 프롬프트를 반환할 수 있으며, 두 번째 방법도 판단할 수 있고 사용자에게 알리기 위해 예외를 던질 수도 있습니다. 연산이 잘못됐다면 그냥 Dao 레이어에 판단을 내리는 것인데, 이는 제가 언급한 두 번째 방법과 유사합니다. 네, 먼저 가져오고 판단한 다음 삭제하는 것이 전부입니다. 그런 다음 판단 논리를 넘겨주는 것이 좋습니다. 서비스 계층으로
물론 삭제 작업으로 작업된 데이터 수를 반환할 수 있다면 두 번째 방법을 선택할 수도 있습니다. 작업의 데이터가 0개이면 해당 항목이 속하지 않는다는 의미입니다. 삭제 작업이 완료된 후에는 이 글이 귀하의 소유가 아니며 운영할 수 없다는 메시지가 표시됩니다.
조금 이상합니다. 개인적인 의견이므로 동의하지 않으시면 토론을 계속하셔도 됩니다

阿神

개인적인 느낌

블로그의 작성자가 한 명이라면 두 번째 방법을 직접 고려해 볼 수 있습니다.
구현은 논리적으로 간단하며 데이터베이스 쿼리 수를 줄일 수 있습니다.

작성자 외에 블로그 시스템을 운영할 수 있는 다른 관리자가 있다고 시스템이 고려하는 경우, 첫 번째 방법인
이 방법이 확장성이 좋고 요구 사항 수정 및 삭제 시 더 편리합니다. .

——블로그 시스템을 한번도 해본 적이 없는 사람의 추측

洪涛

id 매개변수를 수정하여 다른 작성자가 기사를 삭제하는 것을 방지하려면 먼저 서비스에서 해당 기사가 현재 작성자의 것인지 확인해야 합니다.

이 작업에서는 매개변수를 어떻게 전달하든지 확인해야 합니다.

그러면 문제는 간단합니다. AuthorId를 세션에서 가져올지 아니면 쿼리 문자열에서 가져올지 여부입니다.

수년간 블로그를 운영한 경험을 바탕으로 작성되었습니다. 인기 있는 블로그 프로그램은 两个参数都从query string里面传递입니다. 그러나 필수사항은 아닙니다. 즉, postId만 전달할 수도 있습니다. 이렇게 하는 이유. 이는 自定义url 형식에 더 많은 매개변수를 사용할 수 있도록 하기 위한 것입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿