220721 TIL

Yeoni·2022년 7월 21일
0

국비교육TIL

목록 보기
36/41

국비교육 37일차 : Lock, CallableStatement, SYS_REFCURSOR, 에러코드

1. Lock 걸리지 않게 Java 에서 입력하기

  • jdbc.day01 : DML_delete_PreparedStatement_05
    - sql에서 커밋이나 롤백이 되어있지 않으면 데이터가 자바에서 수정되지 않는다.
    - 해당 행에 대해서 dml을 걸면 데이터가 꼬일 수 있기 때문에 다른 사람들이 못건들이게 lock을 걸 수 있다.
    - 따라서 자바는 오토커밋을 권장하고 있고, 수동커밋을 거는 거보다 05파일처럼 정말 할래? 라고 물어보는 것이 더 좋다.

2. 테이블, 시퀀스 유무 확인 하고 생성하기

  • jdbc.day01 : DDL_create_PreparedStatement_06

3. CallableStatement 프로시저 인터페이스

  • jdbc.day02 : Procedure_select_one_CallableStatement_01
    - registerOutParameter() 메소드 사용 방법, 한번에 한 행만 불러오기

4. JAVA CallableStatement, Oracle SYS_REFCURSOR 로 복수행 불러오기

  • jdbc.day02 : Procedure_select_many_CallableStatement_02

5. SQL 에러코드 받아오기

  • jdbc.day02 : Procedure_insert_exception_CallableStatement_03

6. Return 값

  • 자꾸 까먹어서 기억하기
.executeUpdate(); 은 SQL문이 DML문(insert, update, delete, merge) 이거나 
SQL문이 DDL문(create, drop, alter, truncate) 일 경우에 사용된다. 

SQL문이 DML문이라면 return 되어지는 값은 적용되어진 행의 개수를 리턴시켜준다.
예를 들어, insert into ... 하면 1 개행이 입력되므로 리턴값은 1 이 나온다. 
				update ... 할 경우에 update 할 대상의 행의 개수가 5 이라면 리턴값은 5 가 나온다. 
				delete ... 할 경우에 delete 되어질 대상의 행의 개수가 3 이라면 리턴값은 3 가 나온다.
 
SQL문이 DDL문이라면 return 되어지는 값은 무조건 0 이 리턴된다.       

.executeQuery(); 은 SQL문이 DQL문(select) 일 경우에 사용된다.

오늘 분량은 코드를 붙여넣는 거 보다 무슨 파일에 어떤 내용이 있었는지를 정리하는 지를 적어놓는 게 더 효율적일 거 같아서... 아마 한동안은 이렇게 하는 방식이 효율적일지도...?

profile
이런 저런 기록들

0개의 댓글