[F-Lab 모각코 챌린지] 47일차 - JDBC - Connection (4) (JDBC 1 마무리)
F-Lab 모각코 챌린지 47일차 공부 내용입니다. JDBC 1.0 기준으로 Connection 인터페이스 학습을 마무리 하였고, 추가적인 JDBC 업데이트 사항은 JEP 를 기준으로 정리 해 볼 예정입니다.
![[F-Lab 모각코 챌린지] 47일차 - JDBC - Connection (4) (JDBC 1 마무리)](/content/images/size/w1200/2023/07/f_lab_mogacko-8.png)
void setTransactionIsolation(int level) throws SQLException;
int getTransactionIsolation() throws SQLException;
SQLWarning getWarnings() throws SQLException;
void clearWarnings() throws SQLException;
//--------------------------JDBC 2.0-----------------------------
...
void setTransactionIsolation(int level) throws SQLException;
현재 연결의 격리 수준 조작을 시도한다.
인자값으로 필요한 int level 은 격리 수준을 이야기 하는데 이전 글에서 확인 했던 아래의 값들이 여기에 해당된다. 단, TRANSACTION_NONE 으로의 변경은 불가능.
int TRANSACTION_NONE = 0;
int TRANSACTION_READ_UNCOMMITTED = 1;
int TRANSACTION_READ_COMMITTED = 2;
int TRANSACTION_REPEATABLE_READ = 4;
int TRANSACTION_SERIALIZABLE = 8;
만약 트랜잭션 진행 도중 트랜잭션 격리 수준을 변경하면 구현에 따라 다른 동작을 수행한다.
- MySQL 에서 구현한 JDBC Driver 에서는 진행중인 트랜잭션이 완료 되지 않은 상태 에서 위 함수를 사용 하여 트랜잭션 격리 수준을 변경 시도 할 경우 SQLException 이 발생한다.
int getTransactionIsolation() throws SQLException;
현재 연결의 트랜잭션 격리 수준을 int 형태로 확인한다
이 역시 위에서 소개 한 Connection.TRANSACTION_NONE 등의 값과 같다.
SQLWarning getWarnings() throws SQLException;
현재 연결(Connection) 에서 보고된 첫 번째 경고를 검색한다
둘 이상의 경고가 존재 할 경우 후속 경고는 첫 번째 경고에 연결되며 SQLWarning.getNextWarning 메서드를 호출하여 검색 할 수 있다.
일반적으로 우리가 겪는 '예외' 는 이 경고 사항에 포함되지 않는다. 이 메서드는 말 그대로 '경고' 를 나타낸다.
예를 들어 데이터를 조회하는 쿼리를 수행할 때 데이터 특정 부분에 문제가 있으면 아무런 오류를 발생시키지 않고 계속 진행되지만, 이 메서드를 활용하여 경고를 발생시킬 수 있다.
void clearWarnings() throws SQLException;
해당 연결(Connection) 에 보고된 경고를 모두 지운다
새로운 경고가 보고될 때 까지 null 을 반환한다
JDBC 2.0
이 아래에서 부터는 사실 Connection 을 더 이상 다루지 않고 JEP 만 보아도 될 듯 하다
대략적인 구현 사항은 정리된 하여 이제부터는 JDBC JEP 를 위주로 공부 진행 할 예정.
JDBC 2.0 에서 추가된 주요 기능.
- 스크롤 가능한 결과 셋(Scrollable Result Sets): JDBC 1.0에서는 결과 셋을 순방향으로만 스크롤 할 수 있었다. JDBC 2.0에서는 결과 셋 내에서 앞뒤로 자유롭게 이동할 수 있는 스크롤 가능한 결과 셋이 도입 되었다.
- 업데이트 가능한 결과 셋(Updatable Result Sets): 이 기능은 결과 셋 내의 데이터를 직접 수정할 수 있게 해준다.
- 배치 업데이트(Batch Updates): 이 기능을 통해 한 번에 여러 SQL 명령을 데이터베이스에 보낼 수 있다.
- BLOB, CLOB 데이터 타입 지원: 이진 데이터와 긴 문자열 데이터를 보다 효과적으로 처리 할 수 있는 타입이 추가되었다.
- 커넥션 풀링(Connection Pooling) 지원: 데이터베이스 연결을 재사용하여 성능을 향상시킬 수 있다.
- 분산 트랜잭션(Distributed Transactions) 지원: 여러 데이터베이스에서 트랜잭션을 처리하는 기능을 제공