관리 메뉴

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

자바 JDBC 4 - JDBC 기초 실습해보기 4 : Update 클래스에서 사용자가 입력한 값 수정하는 기능 구현하기 본문

프로그래밍 언어/자바

자바 JDBC 4 - JDBC 기초 실습해보기 4 : Update 클래스에서 사용자가 입력한 값 수정하는 기능 구현하기

huenuri 2024. 12. 12. 18:46

 

아직 JDBC 기초 실습이 끝나지 않았다. 조금 전에 작성한 내용이 날아가서 다시 써야 할 것 같다. 이럴 때 가장 공부의 의욕이 떨어지지만 할 수 없다. 그래도 양이 많지 않아서 다행이다. 다시 복습한다 생각하고 써보려고 한다.


 

 

 

 

JDBC 기초 실습해보기 네 번째

 

1. Update 클래스 만들기

패키지에 Update 클래스를 만들고 main을 체크하여 다음과 같이 작성한다. 이 클래스는 사용자에게 이름과 나이를 입력받아 전공을 수정할 수 있는 기능을 구현한다.

 

 

기본적인 코드를 작성했으니 이제 동적 로딩하는 것부터 진행해 본다. 모두 이전의 클래스에서 작성했던 내용과 별로 다를 바 없다.


 

 

 

 

2. 동적 로딩하기

동적 로딩을 하는 경로를 입력하고 try-catch 문으로 감싸준다. 만약 예외가 발생하면 catch 문 중괄호 안에 있는 코드가 실행된다.


 

 

 

3. 연결 권한 확인하기

try 문 안에 연결 권한을 확인하는 3가지 준비물을 가져온 후 con 담아서 보낸다.

 

이 코드를 작성한 후 두 개를 import 해야 한다. 그렇지 않으면 try-catch 문을 추가할 수 없다.

 

 

 

 

 

여기서 두번째 것을 선택하고 catch 문을 불러온다.


 

 

 

 

4. 쿼리문 준비하기

앞에서 작성한 쿼리문을 가져와서 sql 문자열에 붙여 넣는다.

사용자가 입력한 정보와 일치할 때 UPDATE를 진행할 것이다. 사용자가 입력할 값은 우선 물음표 처리를 해놓았다.


 

 

 

 

5. PrepareStatement에 쿼리문 담아주기

연결 권한과 함께 쿼리문을 담아준다.

 

 

그런 다음 물음표를 채워주는 작업은 진행한다. 물음표를 넣었으면 반드시 채워야 하고 데이터 타입도 같아야 한다. 코드는 왼쪽에서 오른쪽으로 흐르며 물음표 대신 채워줄 값을 넣는다.

모든 데이터는 Student 클래스의 stu에 들어있는데 필드는 private으로 설계되었으므로 getter를 사용해서 가져와야 한다.


 

 

 

 

6. 쿼리문 이동하고 실행하는 코드 작성하기

 

이러한 것을 판단할 수 있도록 int cnt 변수에 담는다.

 

 

 

그리고 cnt에 따라 업데이트가 성공했는지 실패했는지 조건문을 작성한다.


 

 

 

 

7. 빨간 줄 뜨는 문제 해결하기

stu에서 빨간 줄이 뜨고 있다. 이건 생성자를 만들지 않았기 때문인 것 같다. psmt.setString(1, stu.getMajor()); 같은 코드에서 stu 객체가 사용되는데, 해당 객체를 선언하거나 초기화하는 코드가 없기 때문이다. 

 

 

이렇게 생성자를 만들었으나 오류가 뜬다.

 

대신 stu에 뜨던 빨간 줄은 사라졌다.  그리고 스캐너 기능도 빠져있고 몇 가지 수정하니 오류가 사라졌다. 입력을 받은 다음 scanner.nextInt() 이후에 scanner.nextLine()으로 버퍼를 비워주는 코드도 추가했다.

 

 


 

 

 

 

 

오라클 DB에서 업데이트한 데이터 확인하기

 

1. Student 테이블에 저장된 값 확인하기

이제 데이터베이스로 Student 테이블에 어떤 값이 들어있는지 확인해 보겠다.

 

김삿갓이라는 입력 데이터가 들어있음을 확인했다. 이제 Update 클래스에서 이 값을 수정해 볼 것이다.


 

 

 

 

2. Update 클래스에서 저장된 값 수정하기

 

전공을 바꾸었는데 업데이트가 잘 되었다.


 

 

 

3. 오라클에서 정보 확인하기

 

업데이트한 값으로 잘 수정되었다.


 

 

 

 

학습을 마치고

이번 시간에 공부한 것도 많이 어려운 내용이었다. 그래도 이제 세 시간만 더 수업을 들으면 JDBC 학습을 마치게 된다. 오늘 남은 수업을 다 못 들을 수도 있지만 빨리 공부를 마치는 것보다 이해를 우선으로 학습하고 있다.

선생님 코드에서 잘못된 부분이 있어서 내가 작성한 건 조금 다르게 했다.