본문 바로가기
개발자/백엔드 웹 개발자 과정(국비)

[JSP]DBCP 세팅

by 초응 2023. 1. 12.

3초 룰  > 사용자가 제공받는 최대 시간.

개발자의 퍼포먼스 : 처리시간. 

데이터베이스 연동과 처리 응답 결과를 만들어야 함. 

 

DBCP :  DataBase Connection Pool (비디오가게)

커넥션들을 미리 만들어놓고 사용자가 요구할때마다 만들어진 걸 빌려주고 반납하면 다시 받고 -- 주고받고 반복

ㄴ 연결하고 자원반납 안할 수 있음. 

ㄴ 싱글턴방식

 

객체를 할당받는 방법 (면접 팁)
1. 프로토 타입 방식 :  내가 필요할 때마다 객체를 만들어서 할당받는 방식. (new)
2. 싱글턴 : 객체가 이미 만들어져 있고 만들어있는 것을 제공받는 형식.(재활용하는 방식)
ㄴ Calendar가 싱글턴 방식의 대표. 

 

톰캣에도 이런 DBCP기능이 탑재되어 있다.

DBCP: 웹 표준기술이지만 선택기술이다. 기술을 쓰기 위해서는 라이브러리가 필요. 

 

라이브러리 : 아팟치에서 제공해 주는 기본기술로 제공해주는 

웹표준기술의 표준기술로 사용할 수 있는 것.(커몬스라는 접두어가 들어간다)

1. 드라이버  2.commons-DBCP  3.commons-collections 4.commons-pool 

 

방법

1. https://tomcat.apache.org/  > Archives

 > 디렉터리 (폴더명이라고 생각하기)   ( 라이브러리폴더) > commons/  (웹표준기술)>

dbcp/  > binaries/  > 버전은 회사에 따라 다름

collections > binaries/ > 

pool > binaries/


이클립스  lib 폴더에 복사 ( 내 컴퓨터에서 복사 말고 Package Explorer 경로에 복사할 것 )


내가 검색을 하기 전 그 기능을 구현했던 벤더업체의 매뉴얼을 보기. 

 

[dbcp]

1. sever.xml 수정 

<Resource name="jdbc/myoracle" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:xe" username="scott" password="1234" maxTotal="20" maxIdle="10" maxWaitMillis="-1"/>

 

 


2.web.xml 수정

<resource-ref> <description> Oracle Datasource example </description> <res-ref-name> jdbc/myoracle </res-ref-name> <res-type> javax.sql.DataSource </res-type> <res-auth> Container </res-auth> </resource-ref>

3. 안될 경우를 대비하여 Context.xml

<ResourceLink global ="jdbc/myoracle" name="jdbc/myoracle" type ="javax.sql.DataSource"/>

--------

db연동 지우기. dbcp 이용 예정

Context는 정보 객체 

 

4.

Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/myoracle");
conn = ds.getConnection(); //etc.

import javax.sql.*;

import javax.naming.*;

ㄴ 젤 표준적인 방법. 다양한 방법이 있다.

 

매번 4줄 쓰기 힘드니 클래스를 만들어서 호출해서 사용할 수 있도록 한다.