본문 바로가기

웹 - JDBC

웹 - jdbc - 웹에서 db사용 환경설정 및 jdbc/servlet_forward 템플릿

_웹에서 DB사용하려면.zip
2.05MB

-> 라이브러리 파일

 

-> 다운받고 다음 폴더 하위에 드래그해서 옮기기

 

-> 다음과 같이 세팅

 

*)dbcp(database connection pool) - 커넥션 관리 객체

=> BasicDataSourceFactory는 공장으로 클래스(설계도/BasicDataSource 가 필요함

=> 사용자는 DataSource(인터페이스-사용설명서)를 가지고 커넥션을 사용할 수 있음

=> BasicDataSource는 항상 일정한 개수의 커넥션을 유지하려 함(부족한만큼 oracle에서 얻어옴)

*)dbcp(database connection pool) - 미리 데이터를 만들어놓고 요청시 바로 서비스해줌

 

)설치 파일 요약

 

)DBService - datasource 하나씩 받아오기

package service;

import java.sql.Connection;
import java.sql.SQLException;

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

public class DBService {

	
	// 싱글톤 패턴 : 객체 1개만 생성해서 이용하자
	static DBService single = null;
	
	DataSource ds = null;
	
	public static DBService getInstance() {
		if(single == null) single = new DBService();	// 없으면 니 객체를 생성해라		
		return single;
	}
	
	// 외부에서 객체 생성을 못하게 하기 위해 private 접근제어자 사용
	private DBService() {
		
		try {
			// JNDI을 이용해s서 DataSource정보를 얻어온다
			// 1. InitialContext생성(JNDI->interface추출객체)
			InitialContext ic = new InitialContext();
			
			// 2. Context정보(context.xml) 얻어온다
			Context context = (Context) ic.lookup("java:comp/env");
			
			// 3. naming을 이용해서 DataSource
			ds = (DataSource) context.lookup("jdbc/oracle_test");
			
			
		} catch (NamingException e) {
			e.printStackTrace();
		}
	
	}// end - Contructor
	
	public Connection getConnection() throws Exception {
		
		// DataSource를 이용해서 BasicDataSource가 
		// 관리하고 있는 커넥션을 요청
		return ds.getConnection();
	}
	
}

 

) 테스트 (jsp)

<%
	Connection conn = DBService.getInstance().getConnection();

	System.out.println("--success--");
	
	conn.close(); /* 사용하면 커넥션을 닫아줘야 함 */
%>

 

서블릿 템플릿.xml
0.00MB