커넥션 풀의 개요
커넥션 풀이 사용되는 구조
JNDI의 개요
자카르타 DBCP API를 이용한 커넥션 풀
Releases 에서 다운로드 (Binaries 로) 받고 압축 풀기
WEB-INT/lib 에 .jar 파일 넣기 (세 개 다)
META-INF/context.xml 파일 생성
<Context>
<Resource name="jdbc/MysqlDB"
auth="Container"
type="javax.sql.DataSource"
username="root"
password="123456"
driverClassName="com.mysql.cj.jdbc.Driver"
factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
url="jdbc:mysql://localhost:3306/jpa?characterEncoding=utf-8"
maxActive="500"
maxIdle="100"/>
</Context>
maxActive 동시에 연결할 수 있는 커넥션의 개수
maxIdle 사용하지 않고 존재하고 있는 (유휴) 커넥션 개수
WEB-INT/web.xml 파일 생성
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>IntranetProject</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
web 과 관련된 설정 파일
welcome-file-list 는 디폴트로 보여줄 페이지 설정
JSP파일에서 DB와 연동하는 작업하기
예제
dbcpAPITest.jsp
<%@page import="javax.sql.DataSource"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%
Connection conn = null;
try {
Context initCtx = new InitialContext();
//DataSource ds =(DataSource) initCtx.lookup("java:comp/env/jdbc/MysqlDB");
//위 문장과 아래 문장은 동일한 기능
Context envCtx = (Context) initCtx.lookup("java:comp/env");
//ds context.xml 에 있는 name 을 반환
DataSource ds = (DataSource) envCtx.lookup("jdbc/MysqlDB");
//이미 만들어져있는 커넥션 객체를 할당
conn = ds.getConnection();
out.print("<h3>연결되었습니다.</h3>");
}catch(Exception e){
out.print("<h3>연결에 실패하였습니다.</h3>");
e.printStackTrace();
}
%>