ETC/Tip & 설정 변경

웹 어플리케이션 구동 시 JDBC 드라이버 로딩하기

구일일구 2022. 9. 6. 17:51
반응형

* 지금까지 앞부분에서 [Class.forName(jdbcDriverClass);]를 로딩했었다.

* 하지만 JDBC 드라이버는 한 번만 로딩하면 이후로 계속해서 사용할 수 있기 때문에 모든 JSP 페이지에서 매번 JDBC 드라이버를 로딩할 필요가 없다.

* 웹 어플리케이션이 시작될 때, 자동으로 JDBC 드라이버를 로딩하도록 만들려면 서블릿 클래스를 사용하면 된다.

 

Dynamic web project > Java Resources > src/main/java > 패키지 넣어도 되고, 아니면 바로 클래스로 만들어도된다.

이거 주소 : ez.loader.Loder.java

package ez.loader;

import javax.servlet.http.HttpServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import java.util.StringTokenizer;

public class Loader extends HttpServlet{

	@Override
	public void init(ServletConfig config) throws ServletException {
		try {
			String drivers = config.getInitParameter("jdbcdriver");
			StringTokenizer st = new StringTokenizer(drivers, ",");
			while(st.hasMoreTokens()) {
				String jdbcDriver = st.nextToken();
				Class.forName(jdbcDriver);
			}
		} catch(Exception ex) {
			throw new ServletException(ex);
		}
	}
}

 

그리고

WEB-INF > web.xml에 들어가서 이거 써준다.

servlet-class에는 내가 위에서 만든 서블렛의 주소를 적어주면 된다.

혹시, 다른 JDBC 드라이버도 연결하려고 한다면

<param-value>안에 쉼표로 구분하여 다른 JDBC 써주면 된다.

 	<servlet>
 		<servlet-name>JDBCDriverLoader</servlet-name>
 		<servlet-class>ez.loader.Loader</servlet-class>
 		<init-param>
 			<param-name>jdbcdriver</param-name>
 			<param-value>oracle.jdbc.driver.OracleDriver</param-value>
 		</init-param>
 		<load-on-startup>1</load-on-startup>
 	</servlet>
반응형