관리 메뉴

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

자바 JDBC 2 - JDBC 기초 실습해보기 2 : 데이터베이스에 연결할 때 권한 요청 및 오류 잡는 방법 본문

프로그래밍 언어/자바

자바 JDBC 2 - JDBC 기초 실습해보기 2 : 데이터베이스에 연결할 때 권한 요청 및 오류 잡는 방법

huenuri 2024. 12. 12. 15:09

조금 전에 만들었던 기초 실습 프로젝트를 이어서 진행해보겠다.


 

 

 

 

JDBC 기초 실습해보기 두 번째

 

1. 입력받은 데이터 Student 자료형

 

자료형을 생성하고 사용자가 입력한 변수의 값으로 초기화했다.


 

 

 

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

이러한 과정은 다음 단계에 따라서 이루어진다.

 

동적 로딩은 데이터베이스로 연결한 DB를 정하고, 만약 오라클 DB와 연결한다면 이를 연결한다고 말하는 것이다. forName()을 사용해서 경로를 지정하는 클래스가 있다. forName()을 우리가 따로 지정하지 않아도 static이라는 정적인 공각을 사용하도록 한다. 실행하는 순간 오라클 DB와 연결할 준비가 된다.


 

 

 

 

3. 동적 로딩시 발생하는 오류 잡기

하지만 이렇게 빨간줄이 뜬다. 이 오류는 두 가지가 있다.

 

자바에서 DB와 연결하는 코드는 문법적인 오류를 잡을 수 없다. 왜냐하면 DB와 연결하여 요청하다가 오류가 날 수도 있기 때문이다. 대부분 Exception이 발생하지만 이 오류는 DB와 연결할 때 예외 상황이 발생할 때 어떻게 할지에 대한 코드가 추가되어야 문제가 해결된다.

코드를 올리면 오류에 대한 설명이 나오는데 우리는 그중에서 두 번째 것을 선택할 것이다.

 

try, catch 문에서 catch가 예외 상황을 잡는다. 

 

만약 오류가 발생하면 이러한 출력문이 실행되도록 만든다. 그렇다면 이러한 오류는 왜 발생할까?

 

 


 

 

 

 

4. 코드 실행하기

코드를 실행해서 동적 로딩 실패라는 메시지가 뜨지 않으면 이상이 없는 것이다.

 

 

하지만 내 코드에서는 실패 메시지가 떴다.


 

 

 

코드를 수정하여 실행해보니 이번에는 오류가 뜨지 않았다. 동적 로딩 주소에서 오타가 있었다.


 

 

 

 

5. 자바와 DB의 연결 통로 이해하기

 

자바와 DB 사이의 연결 권한을 확인하는 통로는 계정 비밀번호를 통해서이다. 이렇게 해서 통로는 만들어졌지만 아직 문이 닫혀진 상태이다. 이 문을 열려면 연결 권한이 필요하다. 이 권한은 hr 계정, 비밀번호, URL 주소가 있으면 자바와 DB가 서로 드나들 수 있다.


 

 

 

 

 

6. 데이터베이스 연결 권한 확인하기

DB에 연결하려면 세 가지 준비물이 필요하다. URL은 오라클에 처음 접속할 때 URL이 문자열로 붙어있다. 이것은 jdbc.oracle.thin 드라이버를 사용하여 로컬 host 내 ID 주소를 가져오는 것이다. 여기서 XE는 오라클 DB의 별칭이다.

 

 

이제 이 세 가지 정보를 넘겨주었으니 연결 권한이 있으면 연결 권한을 주도록 요청할 것이다.


 

 

 

 

 

7. 데이터베이스 연결 권한 요청시 오류를 잡는 방법 4가지

요청할 때는 import까지 진행해야 한다.

 

 

여기서 빨간줄이 뜨는데 그 이유는 무엇일까?

 

 

 

 

조금 전에는 클래스 exception에 대해서 다루어보았다. 이번에는 SQL exception이 발생한다. 이것도 try-catch문으로 잡아주어야 한다. 이중에서 네번째 것을 선택해보자.

 

 

 

 

try 문 안에 또 다른 try-catch 문이 들어가게 되었다. try 문 안에 또다시 try를 넣을 필요가 없으며 코드만 복잡해진다. 그중에서 우리는 두번째나 세 번째 것을 사용할 것이다. 이 둘의 차이점은 다음과 같다.

add catch의 경우 catch 문이 하나 더 생기는데 각각 클래스와 sql을 잡는 exception이 된다.

 

 

 

세번째 것은 하나의 catch 문이 여러 개의 exception을 잡는다.


 

 

 

 

 

8. 두 가지 오류를 잡는 코드 작성하기

우리는 어디서 오류가 발생하는지 명확히 구분이 필요하므로 cathch 문을 두 개로 만들어주기로 하자. 그리고 다음과 같이 코드를 작성한다.

 

여기서 확인할 것을 다시 한번 정리해보자.

 

 

 

 

이제 코드를 실행해본다.

 

 

 

 

아무것도 출력문이 뜨지 않은 것을 보니 실행이 잘 되었음을 알 수 있다.


 

 

 

 

학습을 마치고

이번 수업도 정말 시간이 많이 걸렸지만 아직 첫째날 JDBC 수업이 30분 정도 남아있다. JDBC는 알아야 할 게 정말 많고 어려운 것 같다.

그래도 6달 전에 처음 이 수업을 들었을 때는 무슨 말인지 하나도 알아듣지 못해서 수업 시간에 멍하니 있다가 너무 화가 나서 눈물이 나기도 했었다. 그때는 인사교에 입교한지 얼마 안 되었을 때였는데 공부하는 게 정말 힘들었다. 물론 지금도 힘들지만 지금은 할만하다.

 

그때 선생님이 내 자리에 오셔서 다시 설명해주셨던 기억이 난다. 그래도 난 무슨 말인지 거의 이해하지 못했다. 지금은 이해도 하고 이렇게 혼자서 코드도 작성하니 엄청나게 발전한 셈이다.