Intellij JSP - MySQL DBCP (Connection Pool)

less than 1 minute read

MySQL DBCP (Connection Pool)

  • Connection Pool 설정

    • context.xml
        <Context>
            ...
      
            <Resource name="jdbc/mysql" auth="Container"
                                    type="javax.sql.DataSource" username="root" password="1234"
                                    driverClassName="com.mysql.jdbc.Driver"
                                    url="jdbc:mysql://localhost:3306/JSP"
                                    maxActive="50" maxIdle="30" maxWait="1000"/>
      
            ...
        </Context>
      
      • name - JNDI 이름
      • type - resource의 반환 타입
      • username - DB접속 이름
      • username - DB접속 비밀번호
      • url - DB 접속 URL
      • driverClassName - DBCP를 이용하기 위한 DriverClass
      • maxActive - 사용이 되고 있는 최대 커넥션 개수 (-1로 설정하면 동시에 생서되는 커넥션 개수에 제한을 두지 않음)
      • maxIdle - 사용되지 않는 커넥션을 커넥션 풀에 저장해 둘 수 있는 최대 수
      • maxWait - 단위는 mx 단위, 동시 접속자 수가 많아져서 사용 가능한 커넥션이 없을 때 maxWait 에 지정된 시간만큼 대기
    • web.xml
        <?xml version="1.0" encoding="UTF-8"?>
        <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
                         version="4.0">
                ...
      	
                <resource-ref>
                        <description>MySQL DBCP</description>
                        <res-ref-name>jdbc/mysql</res-ref-name>
                        <res-type>javax.sql.DataSource</res-type>
                        <res-auth>Container</res-auth>
                </resource-ref>
      	
                ...
        </web-app>		
      
  • Connection Pool 을 이용한 Connection 가져오기

    • DBConnUtils.java
        import javax.naming.Context;
        import javax.naming.InitialContext;
        import javax.sql.DataSource;
        import java.sql.Connection;
      
        public class DBConnUtils {
      
                public static Connection getDBCP() {
                        Connection conn = null;
                        String jndiName = "jdbc/mysql";
                        try {
                                Context initContext = (Context) new InitialContext().lookup("java:/comp/env");
                                DataSource ds = (DataSource) initContext.lookup(jndiName);
                                conn = ds.getConnection();
                        } catch (Exception e) {
                                e.printStackTrace();
                        }
      
                        return conn;
                }
        }
      		
      
  • 신입SW인력을 위한 실전 JSP Servlet
  • TOMCAT JDBC 설정방법 + SPRING DATASOURCE 설정방법

Categories:

Updated:

Leave a comment