Programming/JDBC

JDBC와 DB간의 커밋(commit). 관계, 열 시퀀스. 2022-02-08

최동훈1 2022. 2. 8. 17:25

그전에는 커밋을 단지 SQL DEVELOPER의 접속 세션에만 영향을 주는줄 알았는데, 실제 JDBC로 DB에 불러올때도 똑같은 원리가 적용되는줄 이제 알았다.

이전 나의 포스팅을 참고바람.

커밋과 롤백, DATE 형 칼럼에 값 insert 하기. 2021-07-23 — "꾸준하게, 지속하자" (tistory.com)

 

왼쪽 JDBC로 접속한 세션을 session1,  오른쪽 SQL DEVELOPER로 접속한 세션을 session2라 칭함. 

session2에서 notice 테이블에 새로운 테이블을 추가 했음에도, session1에 반영이 안된 모습. (해당 테이블이 ROCK걸린 상태).

session2 에서 커밋을 완료함.

session2에서 커밋을 완료하고, session1에서 바로 반영된 모습.

 

그런데 위에 보면 hit가 10 이상인 레코드만 뽑아내는 기능은 session1 ,2 둘다 같은데 코드의 방식이 서로 다르다. session1 은 java 로 if(10<hit)이란 조건문을 이용해서 뽑아내었고 session2 는 select * from notice where hit>10; 이렇게 쿼리를 이용해서 뽑아내였다. 

두 가지 방법중 바람직한 방법은 쿼리를 이용해서 DB단계에서 필터링하는 것이다. 애초에 SQL 자체가 DB를 다루는데 특화되어 있기 때문에, 자바에서 반복문으로 돌리는것 보다 훨씬 자원 소모가 덜하다.

 

또, 트랜젝션이란 : 업무적인 단위 이다.

ACID 법칙을 지켜야 한다. 이건 추후 포스팅으로 다시 다루겠다.

 

또한 열 시퀀스를 이용하는 방법이 있는데 그것은 앞서 insert 문을 쓸떄마다, ID를 수동으로 입력해 줬다면, 열 시퀀스 기능을 이용하면 자동으로 다음 숫자가 입력된다.

 

내가 이전에 포스팅한 내용 참고 :JDBC에서 레코드 가져오기, insert문으로 레코드 입력하기 + 트리거 개념+ 시퀀스 개념.+ statement 클래스의 DML에 따른 함수들. 2021-08-27 — "꾸준하게, 지속하자" (tistory.com)

 

 

 

공부시간 2시간.

순공시간 1시간.