관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

자바 JDBC 12 - 학생 정보관리 프로그램 만들기 4 : 반복되는 코드 함수로 묶어서 관리하기 본문

프로그래밍 언어/자바

자바 JDBC 12 - 학생 정보관리 프로그램 만들기 4 : 반복되는 코드 함수로 묶어서 관리하기

huenuri 2024. 12. 13. 15:14

학생 정보관리 프로그램 만들기 마지막 수업이다. 빨리 마치고 다른 일을 하고 싶지만 이것까지는 끝내야겠다.


 

 

 

 

학생정보관리 프로그램 만들기 네 번째

지금까지 진행했던 클래스를 정리한 것이다.

 

 

설명은 지금까지 많이 했으니 생략하겠다. 그리고 쓰기 귀찮기도 하다. 여기서 학생정보를 삭제하려면 StudentDAO에서 했던 것과 같은 코드를 반복해야 한다.

매번 이렇게 반복하는 것이 상당히 지루한 작업이 된다. 이제 동일한 코드를 하나의 기능으로 만들어주는 작업을 진행하려고 한다.


 

 

 

 

데이터베이스를 연결하는 기능 메서드로 만들기

 

1. 동적 로딩하기

자원을 반납하고 데이터베이스와 연결하는 코드를 DAO에 작성한다.


 

 

 

 

 

2. 데이터베이스와 연결하기

 

하지만 conn에서 오류가 발생한다. conn을 전역변수로 선언했는데 말이다. 이것은 전역변수가 상단에 위치하지 않기 때문이다. 우리는 insert 클래스 안에서 사용되는 전역변수가 아닌 StudentDAO 클래스의 전역변수로 바꾸어야 한다.


 

 

 

 

 

3. 전역 변수 위치 바꾸기

 

이 부분을 잘라내어 앞으로 옮긴다.

 


 

 

 

 

 

4. DriverManater에 catch 문 추가하기

여기까지가 dbOpen() 메서드에 담길 내용이다.


 

 

 

 

 

5. 필요 없는 코드 지우기

조금 전에 만든 코드와 중복되는 내용을 삭제할 것이다.

 

이 부분을 삭제한다.


 

 

 

 

 

6. 데이터베이스와 연결하는 메서드 호출하기

조금 전에 만든 메서드를 호출한다.

 

하지만 이렇게만 쓰면 catch 문에서 오류가 난다. 왜냐하면 catch 문이 중복되기 때문이다.

 

 

 

따라서 이 코드로 지운다. 왜 SQL exception에서는 오류가 나지 않을까? 무슨 말인지는 잘 모르겠는데 메서드가 확인하는 부분이 달라서 그런 것 같다. try 문 안에 있는 코드는 Execute Update에 대한 오류를 잡고 있기 때문이다.

 

 

 

이 catch 문 하나만 남겨놓았다.


 

 

 

 

7. SQL 오류시 실행 구문 작성하기


 

 

 

 

 

자원 반납하는 기능 메서드로 만들기

 

1. finally 안쪽 구문 잘라내기


 

 

 

 

2. 잘라낸 코드 붙여넣기

dbOpen() 메서드 아래쪽에 이 코드를 붙여 넣는다. 먼저 dbClose()라는 메서드를 생성한 후에 붙인다.


 

 

 

 

 

3. 자원 반납 메서드 호출하기

finally 안쪽에 호출하는 메서드를 작성한다.

 

 

 

dbClose()에서는 rs 사용 여부에 따라 자원을 반납하는 코드를 3개 집어넣을 것이다. 즉 rs가 null이 아닐 때만 자원을 반납하도록 한다.


 

 

 

 

 

4. rs가 null이 아닐 때만 자원 반납하는 코드 작성하기

 

이렇게 3개를 작성해 준다. 하지만 rs에서 빨간 줄이 뜨고 있다. 그 이유는 아직 rs 객체 생성을 하지 않았기 때문이다.


 

 

 

 

5. rs 객체 생성하기

 

객체를 생성하자 모듈이 추가되었다.

 

 

 

 

그리고 빨간 줄도 지워졌다. 이제 두 가지 기능을 메서드로 구현하여 코드가 좀 더 간결하다.


 

 

 

 

학습을 마치고

15분 정도 수업 내용이 남아있어 이어서 기록하다가 코드가 길기도 하고 여기서 학습을 종료한다. 나머지는 학생 정보를 수정하고 삭제하는 기능인데 이 부분은 점심을 먹고 공부해 볼 것이다.

지금 무척이나 배가 고프기도 하고 다른 할 일도 있어 그 일부터 마쳐야 할 것 같다. 어쨌든 정말 어렵게 느껴졌던 JDBC도 공부해 보니 할만하고 계속 반복되는 코드가 많아서 그 부분만 숙지하면 나중에는 거의 자동으로 코드를 잘 만들어 쓸 수 있을 것 같다.