2017-12-07 35 views
0

우리는 모든 사용자 전체 테이블에 컨트롤을 사용하는 클래스를 추가하는 방법은 무엇입니까? 우리의 프로젝트에

CREATE TABLE `user_table` (
`firstname` varchar(20) NOT NULL, 
    `lastName` varchar(20) NOT NULL, 
    `email` varchar(100) NOT NULL, 
    `password` varchar(24) NOT NULL, 
    `accessToken` varchar(64) NOT NULL, 
    `id` bigint(20) NOT NULL AUTO_INCREMENT, 
    PRIMARY KEY (`id`) 
) 

를 나타내는 테이블과 SQL 데이터베이스를 가지고 우리는 클래스 UserDAO 있습니다. 우리는 내가 이름이 꽤 자기 설명이되는 생각과 같은

public boolean areUserCredentialsValid(String email, String password) {...} 
public boolean isAccessTokenValid(String accessToken) {...} 
public boolean isEmailInUse(String email) {...} 

로 방법을 추가해야합니다 : 우리는 부울 값을 반환하기 위해 전체 테이블에 대한 작업을 수행 할를, 그래서 우리는 그것을 추가 정확하지 않을 수 있습니다 생각 UserDAO의 이러한 메서드는 단일 사용자에 대해 CRUD 작업을 수행하지 않고 대신 전체 User 테이블에 대해 R 전용 작업을 수행하므로 새로운 클래스 인 AllUsersDAO에 대해 생각했지만 확신 할 수는 없습니다. 가장 좋은 해결책은 무엇이며 그 이유는 무엇입니까?

우리가 이것을 과소 평가하고 있는지는 잘 모르겠지만, 이것은 대학 과정을위한 프로젝트이며, 우리는 특히 소프트웨어 엔지니어링 능력에 대해 평가를 받고 있으므로 최선의 해결책을 채택하고 싶습니다.

미리 감사드립니다.

답변

0

내 견해로는 CRUD 작업을 UserDao에 넣을 수 있지만 언급 한 메서드는 UserService의 UserDao에있는 메서드를 호출하여 언급 한 메서드를 구현하기 위해 UserService에 넣어야합니다.

0

CRUD 작업에 UserDao를 사용하는 서비스 클래스를 생각해보십시오. UserDao는 데이터 액세스를위한 기본 작업을 제공하는 간단한 클래스 여야합니다. 생각하고있는 기능은 데이터에 대한 서비스 기능입니다. 그래서가 someting이 시도 : 또한

public class UserService { 

private UserDao userDao; 

public boolean areUserCredentialsValid(String email, String password) {...} 
public boolean isAccessTokenValid(String accessToken) {...} 
public boolean isEmailInUse(String email) 
} 

하는 DB의 costraint 같은 나에게 "isEmailInUse"소리와 같은 방법을, 어쩌면 대신 체크 램에 1K + 사용자를로드 할 수있는 더 좋은 방법은 데이터 체크를 찾아보십시오 그것.

0

모두 괜찮습니다.이 모든 메소드가 사용자와 관련되어 있으므로 해당 메소드를 dao에 넣을 수 있습니다. dao를 사용하는 것이 더 좋으며 dao에서 모든 사용자를 가져와 사용자를 통해 검색하여 토큰, 전자 메일 및

0

주어진 메소드 서명에 따라 한 번에 하나의 이메일 ID 또는 이메일/비밀번호 또는 토큰을 전달하므로 서비스 클래스에서이 메소드를 정의 할 수 있으며이 서비스를 사용할 수 있습니다 각각의 사용자에 대한 메소드. 이러한 자격 증명을 받아들이는 UserService 클래스. 그런 다음 dao 메소드를 사용하여 이러한 자격 증명으로 객체를 쿼리 할 수 ​​있습니다. 반환 할 수있는 객체를 반환하는 경우 null을 반환하는 경우 false를 반환 할 수 있습니다.

public class UserServiceImpl 
{ 
    public boolean isEmailInUse(String email) { 
    User user=....;// jdbc code to find a user with this email 
    if(user!=null) 
     return true; 
    else 
     return false; 
    } 
}