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