JAVA Developer Training
24. EnrollCourseDB 교수정보 받기 본문
public List<Enrollcourse> selectCourse() throws Exception {
MongoCursor<Document> cursor = this.enrollcourseCollection.find().sort(Filters.eq("_id", 1)).iterator();
List<Enrollcourse> list = new ArrayList<>();
while (cursor.hasNext()) {
// 수강정보 , 강의실, 등록일자, 학번, 과목번호
Document doc = cursor.next();
// System.out.println(doc);
// 학번을 이용해서 학생정보를 가져온다
Student student = StudentDB.getInstance().selectStudentOne(doc.getLong("student"));
// 과목을 이용해 교과목 정보를 가져오기
Course course = CourseDB.getInstance().selectCourseOne(doc.getLong("course"));
// 교과목 정보를 이용해 교수의 정보를 가져오기
Professor professor = ProfessorDB.getInstance().selectProfessorOne(course.getProfessor().getProid());
Enrollcourse enrollcourse = new Enrollcourse();
enrollcourse.setEncno(doc.getLong("_id"));
enrollcourse.setClassroom(doc.getString("classroom"));
// 이후 enrollcourse에 과목을 불러내고 거기서 교수정보를 불러온다
System.out.println("==========================");
System.out.println(student);
System.out.println("==========================");
System.out.println(course);
System.out.println("==========================");
System.out.println(professor);
list.add(enrollcourse);
}
return list;
}
}
미완성
학생정보를 받고
교과정보를 받은후 교과정보를 이용해 교수정보를 받아 enrollcourse에 교수정보를 넣는다
아래는 학생번호를 받으면 해당 학생이 수강신청한
수강번호, 강의실 명 , 학생이름 , 과목명 , 학점 , 교수이름을 호출 할 수 있는 기능이다.
public List<Enrollcourse> selectEnrollStudent(long no) {
//수강 컬렉션에서 student가 같은것.
// _id, , classroom , course, student , date // enroll가지고있는 속성들 따라서 student에서 가져옴
Bson query = Filters.eq("student",no);
MongoCursor<Document> cursor = this.enrollcourseCollection.find(query).sort(Filters.eq("_id", 1)).iterator();
//최종적으로 list모양나오니 미리 선언
List<Enrollcourse> list = new ArrayList<>();
while(cursor.hasNext()){
//지금 학생정보는없고 학번만 온 상태
Document doc = cursor.next();
long _id = doc.getLong("_id"); //수강신청번호
String classroom = doc.getString("classroom"); //강의실명
long course = doc.getLong("course"); //수강번호
long student = doc.getLong("student"); // 학생 아이디, 학번
Date encdate = doc.getDate("encdate"); //등록일자
//리턴하기 위해 객체 생성
Enrollcourse enrollcourse = new Enrollcourse();
//학번을 이용하여 학생정보 가져오기
Student objstudent = StudentDB.getInstance().selectStudentOne(student);
//enrollcourse에 학생정보 모두 저장
enrollcourse.setStudent(objstudent);
Course objcourse = CourseDB.getInstance().selectCourseOne(course);
enrollcourse.setCourse(objcourse);
enrollcourse.setClassroom(classroom);
enrollcourse.setEncno(_id);
enrollcourse.setEncdate(encdate);
list.add(enrollcourse);
return list;
}
return null;
}
실행 화면
public class App {
public static void main(String[] args) throws Exception {
//출력 ) 수강번호,강의실,학생이름,과목명,학점,교수이름
List<Enrollcourse> list = EnrollCourseDB.getInstance().selectEnrollStudent(40);
for (Enrollcourse enrollcourse : list ) {
System.out.println(enrollcourse.getEncno());//수강번호
System.out.println(enrollcourse.getClassroom()); //강의실명
System.out.println(enrollcourse.getStudent().getStdname()); //학생이름
System.out.println(enrollcourse.getCourse().getCorname()); //과목명
System.out.println(enrollcourse.getCourse().getCorpoint()); //학점
System.out.println(enrollcourse.getCourse().getProfessor().getProname()); //교수이름
}
}
'트레이닝' 카테고리의 다른 글
26. socket.io를 이용한 실시간 채팅 기초 틀 (0) | 2021.09.08 |
---|---|
25. JAVA spring 이용 (0) | 2021.09.06 |
23. EnrollCourseDB (0) | 2021.09.02 |
22. CourseDB (0) | 2021.09.02 |
21. ProfessorDB (0) | 2021.09.02 |