DBCP(Database Connection Pool)의 약자로 데이터베이스와 연결을 맺고 있는 객체를 관리하는 역할을 수행.
JDBC의 단점
데이터베이스 연결 시 마다, DB접속을 위한 JDBC 드라이버 로드하고 Connection 객체를 얻는 작업을 반복 수행함.
DBCP의 장점
WAS 실행 시, 미리 일정량의 DB Connection 객체를 생성하고 Pool이라는 공간에 저장해 둔다.
데이터베이스 연결 요청이 있으면, Pool이라는 공간에서 Connection 객체를 가져다 쓰고 반환하게 됨.
DBCP 커넥션 풀은 톰캣 서버의 컨텍스트 패스의 서브 태그로 추가한다.
Dynamic Web Project 생성 => 프로젝트명:jsp-study-09
JDBC드라이버 ojdbcX.jar 와 JSTL을 위한 jar(jstl.jar)를 WEB-INF\lib에 복사한다.
이클립스에 컨텍스트 패스를 자동으로 추가하기 위해 웹 프로젝트 실행
소스명: "01_dbcp.jsp"을 생성하고 추가작업 없이 실행
프로젝트 탐색기 화면에서 “Servers” 폴더에서 server.xml 파일을 연다.
소스의 맨 아래로 내려가 “jsp-study-09” 프로젝트에 대한 <Context>를 찾는다.
찾은 컨텍스트 패스를 <Context></Context> 형태로 태그를 변경한다.
아파치홈페이지(http://tomcat.apache.org/) 접속하여 DBCP <Resource>를 복사한다.
화면 왼쪽 [Documentation] -> [Tomcat 9.0]을 선택
전환된 화면 왼쪽에서 “JDBC Resources” 항목을 선택
목차에서 “4.Oracle 8i, 9i & 10g”항목을 선택
전환된 화면에서 “<Resource name=“jdbc/myoracle” . . . . .” 내용을 복사하여 <Context>와 </Context> 사이에 붙여 넣는다.
오라클 서버 이름을 mysid에서 XE로 변경하고 사용자이름도 변경한다.
그리고 01_dbcp.jsp <body>부분에 code Example을 추가한다.
// Code Example
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/myoracle");
Connection conn = ds.getConnection();
out.println("DBCP 연결 성공");
그리고 01_dbcp.jsp를 실행해서 잘 연결됐는지 확인한다.
<01_dbcp.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.Connection"%>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="javax.naming.Context"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>DBCP 사용 예제</h3>
<%
// Code Example
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/myoracle");
Connection conn = ds.getConnection();
out.println("DBCP 연결 성공");
%>
</body>
</html>
'JSP, Servlet > JSP, Oracle 기초' 카테고리의 다른 글
[JSP] 상품정보 입력 후 출력(fmt태그 사용) (0) | 2020.08.18 |
---|---|
[JSP] 사원정보 입력 후 테이블 형태로 출력 (0) | 2020.08.18 |
[JSP] 오라클 DB에 데이터 저장하기 실습 (0) | 2020.08.14 |
[JSP] 오라클 DB에 데이터 저장하기 (0) | 2020.08.14 |
[JSP] 오라클 DB에 저장되어있는 데이터 불러오기 (0) | 2020.08.14 |