09009
[JSP] DBCP 설정 본문
자바에서 오라클로 쿼리문을 실행하려면?
- 오라클 접속 권한을 위한 환경설정 필요
- 오라클을 사용하기 위해서는 접속 요청을 하여 연결상태가 되어야 한다. = 커넥션
- 커넥션 작업은 오라클을 사용하기 위해 반드시 선행되어야하는 작업이다.
DBCP (데이터베이스 커넥션 풀)
웹 페이지에 접속자 수가 많을 경우 커넥션을 그만큼 많이 걸어줘야 하므로 서버에 부하 발생 → 서버 다운 위험
→ 이러한 문제점을 해결하기 위한 것이 커넥션 풀
DBCP : 접속 인원이 많은 웹 페이지 환경에서 데이터베이스의 속도와 효율성을 높이기 위해 사용된다.
여러 접속자들에 대해 하나의 커넥션 객체로 데이터베이스를 처리할 경우 처리의 어려움을 해결하기 위해
고안된 방식
DBCP는 DBCP 매니저가 어느 정도의 연결을 확보해놓고 있다가 클라이언트의 요청이 들어오면 연결해준다.
그 후, 클라이언트 작업이 모두 끝나면 연결을 다시 DBCP 매니저에게 반환하게 한다.
클라이언트가 접속할 때마다 데이터베이스에 연결을 시도할 경우에 비하여 데이터베이스의 연결 부하가 월등히 적어진다.
DBCP 설치 및 설정
1) [File] - [New] - [Dynamic Web Project] 클릭
2) Project명을 임의로 설정하고 Finish 클릭
3) 오라클 드라이버인 ojdbc와 JSTL을 위한 jar 파일을 아래 경로에 사진과 같이 복사한다.
4) [Web-study-practice] - [New] - [Jsp File]을 선택하여 01_dbcp.jsp로 파일명으로 설정하는 jsp 파일을 하나 만든다.
아래와 같이 "DB 연동"이라는 텍스트 입력 후 실행시킨다.
5) 화면 왼쪽에서 Servers를 찾아 Server.xml 파일을 찾아 클릭한다.
6) Server.xml 파일을 열어서 아래 Source 버튼을 선택하여 파일 맨 끝 부분으로 내려간다.
[Ctrl + Shift + F] (코드 자동정렬 단축키)를 누른 후 Web-study-practice 프로젝트에 대한 <Context>를 찾는다.
7) Apache 홈페이지(https://tomcat.apache.org/)에서 찾은 <Resource> 태그를 <Context> 태그 내부에 기술해야 한다.
그러기 위해서는 <Context /> 형태를 <Context></Context>형태로 꼭 변경해야 한다.
→ DBCP를 가져다 사용하기 위한 코드인 <Resource> 태그를 <Context/>의 자식 element로 추가하려면
시작 태그와 끝 태그가 모두 있어야 그 사이에 코드를 추가할 수 있기 때문이다.
6)번 참고 사진을 보면 Web-study-practice 프로젝트의 context 태그 형태가 <Context />로 되어 있음을 알 수 있는데 이를
<Context></Context>형태로 변경해주도록 한다.
8) 이제 Apache 홈페이지에서 <Resource> 태그를 찾아야 한다.
Apache 홈페이지에 접속하여 Documentation 메뉴에서 본인이 설치한 Tomcat 버전을 클릭한다.
9) 화면이 전환되면 아래로 내려가서 JDBC DataSource 항목을 클릭한다.
10) 화면이 전환되면 Oracle 8i,9i&10g 항목을 클릭한다.
필자의 Oracle의 버전은 21이지만
현재 Apache에서 아직 업그레이드가 되지 않은 상태이기 때문에 Oracle 8i,9i&10g 커넥션 풀도 사용해도 문제 없다.
11) Oracle 8i,9i&10g 항목을 클릭하면 화면이 아래와 같이 전환되는데
Apache 홈페이지에서 웹 애플리케이션에 DBCP를 사용하기 위한 코드가 아래 화면과 같이 샘플로 제공되는 것을 확인할 수 있다. 이 코드를 server.xml 파일에 <Context>와 </Context> 사이에 붙여넣기를 수행한다.
(붙여넣기 후 [Ctrl + Shift + F} 자동정렬하기)
필자의 Oracle 버전은 21이므로 username을 "c##scott"으로 변경하였다. Oracle 12c 버전 미만의 사용자는 username에서 "scott" 상태에서 그대로 두어도 상관없다.
그리고 현재 오라클 서버 이름을 아래와 같이 xe로 변경해주어야 한다.
12) DBCP를 사용하기 위한 코드도 Apache 홈페이지에서 샘플로 제공되는데 아래 화면의 "3.Code example"에 있는 코드의 내용을 그대로 복사하여 01_dbcp.jsp 파일의 <body> 태그 안쪽에 스크립트릿(<% %>)을 추가하여 붙여넣기한다.
자동 import를 위해 [Ctrl + Shift + O] 를 누른다.
<%@page import="java.sql.Connection"%>
<%@page import="javax.sql.DataSource"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.naming.Context"%>
13) 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>
<%
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 > 회원 관리' 카테고리의 다른 글
[JSP] (4) 회원 가입 - 1 (1) | 2023.04.15 |
---|---|
[JSP] (3) 로그인 - 2 (0) | 2023.04.15 |
[JSP] (2) 로그인 - 1 (0) | 2023.04.15 |
[JSP] (1) VO, DAO, 프로젝트 설계 (0) | 2023.04.15 |
[JSP] DB를 연동한 회원 관리 시스템 (0) | 2023.04.15 |