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>
반응형