관리 메뉴

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

자바 JDBC 5 - JDBC 기초 실습해보기 5 : Update 클래스에서 사용한 자원 반납하기 본문

프로그래밍 언어/자바

자바 JDBC 5 - JDBC 기초 실습해보기 5 : Update 클래스에서 사용한 자원 반납하기

huenuri 2024. 12. 13. 04:53

어제 오후까지 JDBC 수업을 듣다가 너무 힘들어서 저녁에는 책으로 공부를 1시간 정도 진행했었다. 어제는 졸려서 8시 반에 취침했는데 다시 전처럼 새벽 2시 이전에 일어나 공부를 할 수 있어서 정말 좋았다. 새벽에 2시간 정도는 어제 공부하다 말았던 책으로 MySQL 공부를 진행했다.

그러면서 내가 혼공 SQL으로 MySQL을 설치하며 공부하길 정말 잘했다는 생각이 들었다. 이제 난 두 가지의 SQL 프로그램을 다룰 수 있게 되었다. JDBC 수업은 3시간 정도 남아있다. 오늘은 아침까지 공부를 꼭 다 마치고 오후에는 JSP로 JDBC 공부를 해보고 싶다.


 

 

 

 

JDBC 기초 실습해 보기 다섯 번째

 

Update 클래스

1. catch 문 다음에 finally 구문 넣기

finally 구문을 넣어 자원을 반납해 준다.

 

finally 구문을 넣으면 catch 문에서 오류가 발생해도 자원이 반납된다. 이때 close()라는 메서드를 사용한다.


 

 

 

 

2. 자원 반납하기

자원을 반납할 때는 close()를 사용하는데 이처럼 오류가 뜬다.

 

 

psmt는 try 문에서만 쓸 수 있는 지역변수이기 때문이다. 이 지역변수를 전역변수로 만들어주어야 하는데 우리는 PrepareStatement를 null로 초기화하기로 하자.


 

 

 

 

3. psmt 전역변수로 선언하기

그러면 psmt를 전역변수로 사용할 수 있게 된다. 그리고 선언은 같은 이름으로 한 번만 할 수 있으니 앞에서 진행했던 코드 중 psmt를 지워야 한다.

 

 

 

이 부분을 수정했다. 그러면 finally 안에서도 psmt를 사용할 수 있게 된다. 여전히 오류가 뜨는 건 psmt도 try-catch 문 안에 넣어야 하기 때문이다.


 

 

 

 

 

4. psmt try-catch 문으로 묶기

 

이 중에서 두 번째 것을 사용한다.

 

 

 

 

catch 문 안에 오류 메시지를 달아주었다. 그런 다음 try 문 안에 connection도 닫아주어야 한다.


 

 

 

 

5. connection 닫기

 

이 역시 오류가 뜨는 건 psmt처럼 전역변수로 선언해야 하기 때문이다.

 

 

 

null로 초기화를 해주었다.

 

 

 

 

이렇게 con도 선언하지 않고 수정해 주었다.


 

 

 

 

 

6. 자원이 사용된 적이 있는지 여부 판단하기

사용이 된 적이 있으면 자원을 반납하는 코드를 추가하도록 할 것이다. 이것을 판단하는 것은 값이 null인지 아닌지를 

통해서 구분한다.

 

 

 

실행해 보면 이처럼 업데이트가 잘 된다.


 

 

 

 

학습을 마치고

어제 이 내용을 공부하려다 너무 어려워서 하지 못했지만 다음날 새벽에 다시 진행해 볼 수 있어서 좋았다. finally 구문을 언제 사용하는지도 알게 되었고 자원도 사용했으면 반납해야 한다는 것을 배웠다.

다음으로 Delete와 Select 클래스도 하나씩 만들 예정이다. 6개월 전에는 무엇을 배웠는지 하나도 기억이 나지 않는데 다시 수업을 듣고 정리해 볼 수 있어서 감사하다.