我目前正在学习Dao在我的项目中使用模式。我知道,一张表相当于一张Dao,对吗?就像StudentDao,SubjectDao。
每个人都在其关联的表中Dao执行CRUD操作,但我的问题是,我将如何DAO为连接表创建一个?假设我有一个查询来加入学生和主题表,那么我该如何创建一个DAO呢?
我应该把它放在StudentDao? 还是去SubjectDao?或者在这种情况下有一个好的做法?
DAO - Data Access Object那Object应该只与数据库通信。所以如果你想要JOIN两个表那么你必须在你的DTO ObjectStudentDTO上引用SubjectDTO。
public class StudentDTO {
private String name;
private String surname;
private String age;
private SubjectDTO subject;
// getters, setters
}
所以,主题DTO
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();
}
}
}
}
我建议您查看一些教程。
问候