2017-12-07 15 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) {...} 

などのメソッドを追加する必要が私は名前はかなり自己explicativeだと思いますこれらのメソッドは、単一のユーザーに対してCRUD操作を実行しないため、ユーザー表全体でRのみの操作を実行するため、新しいクラスのAllUsersDAOについて考えていましたが、納得のいくものではありません。ここで最高のソリューションとは何ですか?

私たちはこれを熟考しているのかどうか分かりませんが、これは大学コースのプロジェクトであり、私たちは特にソフトウェアエンジニアリング能力を評価しているので、ベストソリューションを採用したいと考えています。

ありがとうございました!

答えて

0

UserDaoにCRUD操作を入れることができますが、UserServiceのUserDaoのメソッドを呼び出すことで前述したメソッドを実装するには、前述のメソッドをUserServiceに配置する必要があります。

0

CRUD操作にUserDaoを使用するサービスクラスを考えるようにしてください。 UserDaoは、データアクセスの基本操作を提供する単純なクラスである必要があります。あなたが考えている機能は、データのサービス機能です。だから、このいろいろ書いてみてください。また

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

あなたが与えたメソッドシグネチャに基づいて、一度に1つの電子メール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; 
    } 
} 
関連する問題