Language/JSP

D+32 [Loader, 트랜잭션, 커넥션 풀 ]

구일일구 2022. 9. 6. 17:37
반응형

ResultSet 하면 select문 쓰겠다는 것

 

웹 어플리케이션 구동 시 JDBC 드라이버 로딩하기

 

더보기

ez>loader>Loader.java 만들기 : 예제12.8

- httpServlet 상속 : 클래스가 아니라 이제 서블릿이라고 부름 : init(ServletConfig) 오버라이딩함

- servelet : 자동으로 동작되게 함 - 서블릿이 동작하면 자동으로 메서드가 동작하게 함. 그러면 web.xml을 읽어들이게끔 만듦. 

- stringTokenizer에 ","는 여러 드라이버 넣을 때 사용하라고 만든거임

 

12.9 예제 : <servelet></servelet>안에 들어가는 내용 적기 web.xml에 . Servelet-class에 내 서블렛 주소 넣기. 그리고 param-value에는 오라클 드라이버 집어넣어야 함

- load on startup 1 을 넣어야 자동으로 동작한다.


JDBC에서 트랜잭션 처리하기

* 데이터의 무결성을 위해 하나의 작업을 위한 쿼리는 트랜잭션으로 처리될 필요가 있다.

* 커밋: 5개의 쿼리가 성공적으로 동작되면 결과를 DB에 반영하는 것

* 롤백 : 5개 중 하나라도 에러가 발생하면 원상복구 시키는 것 

 

* 트랜잭션 구현 방법 : 오토 커밋 해제, JTA 이용 방식

 

* JDBC API를 이용해서 한 개 이상의 쿼리를 트랜잭션으로 묶어서 처리하고 싶다면, Connection.setAutoCommit() 메서드에 false를 값으로 전달해서 트랜잭션을 시작하면 됨

 


커넥션 풀

* 데이터베이스와 연결된 커넥션을 미리 만들어서 풀(poop) 속에 저장해 두고 있다가 필요할 때에 커넥션을 풀에서 가져다 쓰고 다시 풀에 반환하는 기법

* 특징

- 커넥션을 생성하는데 드는 연결 시간이 소비되지 않는다.

- 커넥션을 재사용하기 때문에 생성되는 커넥션 수가 많지 않다.


DBCP API를 이용한 커넥션 풀 사용

필요 라이브러리
Commons-DBCP API 관련 Jar 파일: commons-dbcp-1.2.2.jar
Commons-Pool APIJar 파일: commons-pool-1.4.jar
 
DBCP가 제공하는 JDBC 드라이버 로딩
Class.forName("org.apache.commons.dbcp.PoolingDriver");
실제 DBMS에 연결할 때 사용될 JDBC 드라이버도 로딩해야 함
 
DBCP가 제공하는 커넥션 풀로부터 커넥션 가져오기
JDBC URL: jdbc:apache:common:dbcp:설정파일명
, 클래스패스:/pool.jocl 파일에 설정된 풀 사용
  • DriverManager.getConnection("jdbc:apache:commons:dbcp:/pool");
 

 

 

더보기

1) jar 파일 복붙 : web-INF에다가.

2) (java Resource) pool.jocl  파일 만들기 : src/main/java 에다가 만들기 : new > file > 파일 이름에 pool.jocl 하고 finish

- 4줄~9줄까지 변경하기. 

- 4줄 : <object class="org.apache.commons.dbcp.DriverManagerConnectionFactory">

- 5줄 : <string value="jdbc:oracle:thin:@localhost:1521:XE"/>

3) (java Resource) DBCPInit.java : ez>loader 패키지 안에. 교재랑 똑같이 치면 됨. 

4) web.xml에 내용 넣기 : class이름 바꾸기, <param-value> oracleDriver 맨날 쓰던거로 바꾸기.

 

작업하면 끝! 

테스트하려면, viewMemberUsingPool.jsp 만들어서 테스트하기. 

12.13에서 jdbcDriver 굳이 따로 만들지 말고, getConnection 뒤에 바로 쓰기

 

 

 

 

 

12장 JDBC

: Loader - 오라클 드라이버 로딩 

: 트랜잭션 

: 커넥션 풀 

 

: anydesk 깔아서, 집에서 할때 안되면 쌤한테 원격으로 보여줄 수 있음. 

 

반응형