Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

JAVA Developer Training

24. EnrollCourseDB 교수정보 받기 본문

트레이닝

24. EnrollCourseDB 교수정보 받기

Romenest 2021. 9. 2. 17:49
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