커넥션풀 [JSP 기초]

2022. 1. 21. 14:00·JAVA/JSP & Servlet

 

 

 

1. 커넥션풀이란?


커넥션풀이란 객체를 미리 생성해 풀(pool)에 넣어놓고 요청이 있을 때마다 이미 생성된 Connection 객체를 가져다 쓰고 다시 반환하는 방법이다. 사용이 끝난 객체를 연결 해제하지 않고 반납하여 다시 사용할 수 있도록 하는 것이다.

 

복잡성을 줄이기 위해 환경설정과 연결 관리 등은 xml파일에서 따로 관리하고

필요할 때마다 획득하여 사용하는 것이다.

 

 

 

 

 

2. 커넥션풀 사용하는법 - MySQL


 

Server에 context.xml에 들어간다.

 

 

- context.xml

<Resource name="jdbc/mysql"
        type="javax.sql.DataSource"
        auth="Container"
         maxActive="30"
        maxIdle="3"
        maxWait="3000"
        username="본인사용자이름"
        password="본인MySQL패스워드"
        testOnBorrow="true"
        driverClassName="com.mysql.cj.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/DB이름?useSSL=false&amp;serverTimezone=UTC"/>
  • 본 Server의 context.xml 에 삽입
  • 자바 클래스에 /musthave?useSSL=false&serverTimezone=UTC 적었던 것을 아래와 같이 적어야한다.
  • /musthave?useSSL=false&amp;serverTimezone=UTC
  • "&" => "&amp;" 라고 적어줘야 오류가 나지 않는다.

 

 

커넥션풀을 이용한 자바클래스

-DBConnPool.java

package common;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

public class DBConnPool {
	public Connection con;
	public Statement stmt;
	public PreparedStatement psmt;
	public ResultSet rs;
	
	public DBConnPool() {
		try {
			Context initCtx = new InitialContext();
			Context ctx = (Context)initCtx.lookup("java:comp/env");
			DataSource source = (DataSource)ctx.lookup("jdbc/mysql");
			
			con = source.getConnection();
			
			System.out.println("DB Connection Pool success");
		} catch (Exception e) {
			System.out.println("DB Connection Pool fail");
			e.printStackTrace();
		}
		
	}
	
	public void close() {
		try {
			if (rs != null) rs.close();
			if(stmt != null) stmt.close();
			if(psmt != null) psmt.close();
			if(con != null) con.close();
			
			System.out.println("JDBC Disconnection!");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

위와 같이 구성해주면 커넥션풀을 사용할 수 있다.

'JAVA/JSP & Servlet' 카테고리의 다른 글
  • JDBC 연결 - 오류 발생의 사례들
  • 한글 인코딩 문제 해결 - 한글이 깨질 때 [JSP]
  • 내장 객체란? [JSP 기초]
  • JSTL 태그 사용 [JSP 기초]
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (205) N
      • Spring (23)
        • Spring (10)
        • Spring Boot (7)
        • Spring Security (1)
        • Hibernate (4)
      • Test (3)
      • 끄적끄적 (6)
      • 활동 (35)
        • 부스트캠프 (23)
        • 동아리 (3)
        • 컨퍼런스 (3)
        • 글또 (5)
        • 오픈소스 컨트리뷰션 (1)
      • 디자인패턴 (0)
      • Git & GitHub (22)
        • Git (13)
        • Github Actions (1)
        • 오류해결 (5)
        • 기타(마크다운 등) (3)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • Infra (2)
        • Docker (1)
        • Elastic Search (0)
        • Jenkins (1)
        • AWS (1)
      • MySQL (7)
        • 기초 (6)
        • Real MySQL (1)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • CS (26)
        • 웹 기본지식 (0)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
        • 시스템 프로그래밍 (0)
        • 기타 (0)
      • Tools (1)
        • 이클립스 (1)
        • IntelliJ (0)
      • 프로젝트 (2) N
        • 모여모여(부스트캠프) (1)
      • JAVA (32)
        • Maven (6)
        • 오류해결 (11)
        • 자바 클래스&메소드 (1)
        • JSP & Servlet (12)
      • Javascript (5)
        • 기초 (3)
        • React (2)
      • Python (28)
        • 파이썬 함수 (9)
        • 알고리즘 문제풀이 (16)
        • 데이터 사이언스 (2)
        • 웹 크롤링 (1)
      • 단순정보전달글 저장소 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

    웹개발
    jsp
    Spring
    파이썬
    알고리즘
    스프링
    오류해결
    java
    부스트캠프 멤버십
    MySQL
    자바
    Python
    자바스크립트
    운영체제
    os
    Git
    부스트캠프 7기
    스프링부트
    GitHub
    부스트캠프
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
gakko
커넥션풀 [JSP 기초]
상단으로

티스토리툴바