2012-05-29 7 views
8

私は現在、私のプロジェクトでDaoパターンを使用して学んでいます。私は知っている、1つのテーブルはDaoの1つに相当します、そうですか?ちょうどStudentDaoのように、SubjectDao結合テーブル用のDAOを作成する方法は?

Daoは、関連付けられたテーブル内でCRUD操作を実行しますが、私の質問は、結合テーブルに対してDAOをどのように作成するのでしょうか?私は学生と被験者のテーブルに参加するためのクエリを持っていると言うと、どうすればDAOを作成できますか?

StudentDaoに貼り付けてください。またはSubjectDaoに?そのような状況では良い練習がありますか?このスレッドはすでにjavaRanch(JDBC)に開始された

答えて

9

DAO - Data Access Objectに答えることだけデータベースと通信する必要がありObjectである前に、あなたはあなたの努力を無駄にしないでチェックしたいです。だからJOINの2つのテーブルにしたい場合は、 StudentDTOリファレンスSubjectDTOにある必要があります。

public class StudentDTO { 

    private String name; 
    private String surname; 
    private String age; 
    private SubjectDTO subject; 

    // getters, setters 
} 

ので、SubjectDTO

public class SubjectDTO { 

    private String name; 
    private int room; 

    // getters, setters 
} 

そしてDAOは次のようになります。

public StudentDAO { 

    private final String SELECT_QUERY = "SELECT * FROM Student S JOIN Subject Sb ON (S.id = Sb.id)" 

    public ArrayList<StudentDTO> getData() { 

     ArrayList<StudentDTO> data = null; 
     StudentDTO member = null; 
     Connection con = null; 
     PreparedStatement ps = null; 
     ResultSet rs = null; 

     try { 
     con = OracleDAOFactory.getConnection(); 
     ps = con.prepareStatement(SELECT_QUERY); 
     rs = ps.executeQuery(); 
     while (rs.next()) { 
      member = new StudentDTO(); 
      member.setName(rs.getString(1)); 
      ... 
      data.add(member); 
     } 
     return data; 
     } 
     catch (SQLException ex) { 
     // body 
     } 
     finally { 
     if (con != null) { 
      con.close(); 
     } 
     } 
    } 
} 

私はあなたにお勧めしますいくつかのチュートリアルを確認してください。

よろしく

+0

返事ありがとうございました..これはDTOがこの問題の答えだと思われます –

-4

、最初

+0

私は他のフォーラムでこの質問を投稿してもらう場合は申し訳ありませんが、それは私が期限を満たすために必要プロジェクトによということだけです。 –

関連する問題