30일차 시작....

조동현·2022년 8월 12일
0

[교육] Servlet, JSP

목록 보기
3/7
post-thumbnail

📌 웹 서버에서 DB 연결

  • 1. tomcat DB 연결 API
    - 해당 링크에 들어가 oracle db 연결 API 문서의 첫번째 configure xml 문서를 복사한다.
    - 이클립스의 servers 폴더 내부의 context.xml 문서 안에 붙여넣는다.
<Resource name="jdbc/myoracle" auth="Container"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@127.0.0.1:1521:xe"
              username="scott" password="tiger" maxTotal="20" maxIdle="10"
              maxWaitMillis="-1"/>
  • 2. 프로젝트 폴더 내부에 web.xml 파일 만들기
    - 프로젝트 폴더 우클릭 Java EE Tools Generate Deployment Descriptor Stub
    - webapp 폴더 WEB-INF 폴더 web.xml 생성됨
    - 위 페이지에서 2번째 방법의 xml 코드를 복사하여 해당 xml 파일에 붙여넣는다.
<resource-ref>
 <description>Oracle Datasource example</description>
 <res-ref-name>jdbc/myoracle</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
</resource-ref>
  • 3. ojdbc 파일 추가
    - ojdbc 파일을 복사
    - webapp 폴더 WEB-INF 폴더 lib 폴더 선택
    - ojdbc 파일을 붙여넣는다.

  • 4. Connection 가져오기
    - class 파일을 따로 만들어 해당 파일 내부에 java로 코드 작성
Connection conn = null;
try {
    Context initContext = new InitialContext();
    Context envContext  = (Context)initContext.lookup("java:/comp/env");
    DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
    conn = ds.getConnection();
} catch(Exception e) {
	e.printStackTrace();
}


📌 DbcpBean

  • Data Base Connection Pool Bean
    정의 : 서버가 처음 실행될 때, 미리 여러개의 Connection을 만들어 Pool에 저장하는 객체
    특징 :
    - DB와 연결 시간이 빠르다.
    - conn.close() 하면 사용한 Connection을 삭제하지 않고 Pool에 반환한다.
    용어 설명
    - Pool : Connection 객체를 미리 담은 공간
    - Bean : 객체


📌 DAO 최적화

  • DAO 최적화 방법
    - 다른 클래스에서 DAO 객체를 여러개 만들지 못하게끔 최적화하는 작업

  • 절차
    1. 다른 클래스에서 만들지 못하도록 private 생성자를 선언
    2. 반복 사용을 위한 DAO 참조값을 반환하는 static 메소드 만들기
    처음 만든 객체일 때만 new 할 수 있도록 로직 작성
    3. DAO 객체를 저장하는 static 필드를 선언

  • 형식
public class MemberDao {
	private static MemberDao dao = null;
	
	// 객체를 만들 수 없도록 최적화시킴
	private MemberDao() {
		
	}
	
	// MemberDao 객체의 참조값을 리텅해주는 public static 메소드 만들기
	public static MemberDao getInstance() {
		if(dao==null) {
			dao = new MemberDao();
		}
		
		return dao;
	}
}


profile
데이터 사이언티스트를 목표로 하는 개발자

0개의 댓글