DBCP, JNDI, MyBatis셋팅 시작

전영덕·2023년 4월 29일
0

JSP

목록 보기
12/16

1. DBCP

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

2. JNDI(Java Naming and Directory Interface)

  • 디렉토리 서비스에서 제공하는 데이터 및 객체를 발견하고 참고하기 위한 자바API.
  • 외부(WAS)에 있는 객체를 가져오기 위한 기술 방법
  • DB Pool을 미리 Naming시켜두는 방법(DB연결 방법 중 하나)
  • 우리가 저장해 놓은 WAS의 데이터베이스 정보에 JNDI를 설정해 놓으면, 웹 어플리케이션은 JNDI만 호출하면 간단하다.

2-1. 사용하는 이유

  • 개발을 한 사람과 실제 서비스를 운영하는 담당자는 다른 경우가 많기 때문에, 소스 레벨에서 설정되어 있는 것보다 WAS에서 설정되어있는 것을 선호한다.
  • WAS에 여러개의 웹 어플리케이션을 올려서 사용하기 때문에 WAS에서 한번에 설정해 주는 것이 자원 낭비를 줄일 수 있다.
  • 또한 장애가 나거나 성능이 정상적이지 못하면 다른 한 서버가 대신 일을 해줄 수 있다.
  • 정리 : 운영, 관리, 최적화 문제 대처에 다양한 이점이 있기 때문에 JNDI를 사용한다.

2-2. 셋팅 방법

  • 이클립스의 Servers에서 day08-config의 context.xml파일 보기
    제일 마지막줄에서 한칸위에 리소스로 DB설정하기

  • webapp>web-inf 아래 web.xml파일 마지막에서 한줄 ()위에다가 입력하기

<Resource 
       name="jdbc/oracle"
       auth="Container"
       type="javax.sql.DataSource"
       driverClassName="oracle.jdbc.driver.OracleDriver"
       url="jdbc:oracle:thin:@localhost:1521:xe"
       username="jsp"
       password="jsp"
       maxActive="20"
       maxIdle="20"
       maxWait="-1"
    />
  • dbcp폴더 만들고 그아래에 dbcp_test.jsp만들기

  • 다 맞게했는데도 안된다면D:\JYD\util\apache-tomcat-9.0.73\lib에서
    tomcat-dbcp.jar 라이브러리를 복사해서 다른거랑 똑같이 복붙해서 빌드패스잡아주자

DBConnection.java파일을 삭제한다
어차피 day07에도 백업 파일이있으니까 괜찮다.

0개의 댓글