본문 바로가기

개발

[JSP] tomcat5.5 mysql datasource 데이타소스 연결법

tomcat /conf/server.xml 에 context를 추가해준다.
<?xml version="1.0"?> <Context docBase="yourapp" path="/yourapp"> <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="yourid" password="yourpw" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb?autoReconnect=true"/>
</Context>
빨간부분들은 환경에 맞게 적당히 넣어주면되고..
첫번째 보라색은 원하는걸로 지어준다. 나중에 이 값을 이용해서 db에 접속한다.
두번째 보라색은 접속하고자하는 db명을 적어준다.
그리고 tomcat홈/common/lib 폴더안에다가 mysql-connector-java-버전-bin.jar 파일을 넣어 준다.
톰캣을 재시작하고 test해보자..
// testdb.jsp //
<%@ page import="javax.naming.*, javax.sql.*, java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR" %>

 Connection con   = null;  PreparedStatement stmt  = null; 
 Context   initCtx = new InitialContext();  Context   envCtx = (Context)initCtx.lookup("java:comp/env");  DataSource   ds = (DataSource)envCtx.lookup("jdbc/DB"); // 위에 적어준 과 동일해야함 
 con    = ds.getConnection();  String msg = "disconnection";
 if(con != null){
  msg = "connection";
 }
%>
 <html>
  <head>
    <title>DB Test</title>
  </head>
  <body>
  <h2>Results = <%=msg %></h2>
  </body>
</html>
결과가 connection이 나오면 접속성공..이제 class로 만들어서 필요할때 가져다 쓰자
class 예 // GetCon.java

import javax.naming.*; import javax.sql.*; import java.sql.*;
public class GetCon {  
 public static Connection getCon()  {     try     {                       Context a = new InitialContext();             Context env = (Context)a.lookup("java:comp/env");                DataSource ds = (DataSource)env.lookup("jdbc/DB");
            return ds.getConnection(); // con으로 리턴해준다.         }         catch(Exception e){ System.out.println("Error");}       
        return null;     }  }

static으로 선언해줬기때문에 어디서든~ 그냥 불러다 쓰면된다.
^_^그럼 모두들 굳럭!