본문 바로가기

BackEnd/JSP

커넥션 풀(DBCP) 이용하여 DB 연동하기 (MySQL)

DBCP (Database Connection Pool, 커넥션 풀) 란?

데이터베이스와 연결된 커넥션을 미리 만들어서 저장해두고 있다가 필요할 때 저장된 공간(pool)에서 가져다 쓰고 반환하는 기법을 말합니다. 커넥션 풀을 이용하면 커넥션을 미리 만들어두고 사용하기 때문에 매번 사용자가 요청할 경우 드라이버를 로드하고, 커넥션 객체를 생성해 연결하고 종료하는 비효율적인 작업을 하지 않아도 됩니다. 즉, 데이터베이스의 부하를 줄일 수 있고 자원을 효율적으로 관리할 수 있는 장점이 있습니다.

 


 

1. WebContent -> META-INF -> context.xml 파일 생성하기

 

 

 

2. context.xml 파일에 아래와 같은 내용을 삽입합니다.

 

<?xml version="1.0" encoding="UTF-8" ?>
<Context>
	<Resource 
              name = "jdbc/MysqlDB"
              auth = "Container"
              type = "javax.sql.DataSource"
              driverClassName = "com.mysql.jdbc.Driver"
              url = "jdbc:mysql://localhost:3306/프로젝트명"
              username = "아이디"
              password = "패스워드"
              factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
              maxActive="500"
	/>
</Context>

 

 

3. DAO에서 연결 시 구문

 

private Connection conn = null;
private PreparedStatement pstmt = null;

public Connection connect() throws Exception {
  // context.xml의 <Context> 태그 설정 가져오기
  Context init = new InitialContext();
  
  // context.xml의 <Context> 태그 내의 <Resource> 태그와 (java:comp/env)
  // JNDI(name 속성 - jdbc/MysqlDB) 가져오기
  DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/MysqlDB");
  
  conn = ds.getConnection();
  return conn;
}

// 호출 메서드에서 사용 시
conn = connect();
pstmt = conn.prepareStatement(sql);

 

 

 

 

'BackEnd > JSP' 카테고리의 다른 글

EL (Expression Language) 예제  (0) 2020.05.05
JSP의 태그 종류  (0) 2020.05.05
서블릿의 생명주기 (LifeCycle)  (0) 2020.05.05
JSP의 동작 원리 알아보기  (0) 2020.05.05
MySQL 설치하기  (0) 2020.03.20