DBCP 1.4 API 의 사용방법

1. DBCP 관련 Jar 파일 및 JDBC 드라이버 Jar 파일 설치하기
   1)Downloads
   2)Downloads Jar files
- DBCP API 관련 Jar 파일 : commons-dbcp-1.4-bin.zip
- DBCP API 가 사용하는 자카르타 Pool API 의 Jar 파일 : commons-pool-1.5.5-bin.zip
   3)위의 파일의 압축을 풀고 각각의 jar 파일을 WEB-INF\lib\ 폴더에 import 한다.
        - commons-dbcp-1.4.jar, commons-pool-1.5.5.jar

   
2. 커넥션 풀 관련 설정 파일 및 초기화하기
   1) 설정파일은 jocl 로 만들어지며 WEB-INF\classes\ 폴더밑에 저장한다.
  
   소스파일) \WEB-INF\classes\pool.jocl
*********************************************************************************************************
<object class="org.apache.commons.dbcp.PoolableConnectionFactory"
   <object class="org.apache.commons.dbcp.DriverManagerConnectionFactory">
      <string value="jdbc:oracle:thin:@localhost:1521:XE" />   <!-- URL -->
      <string value="scott" />                                     <!-- user -->
      <string value="tiger" />                                     <!-- password -->
   </object>
  
   <object class="org.apache.commons.pool.impl.GenericObjectPool">
      <object class="org.apache.commons.pool.PoolableObjectFactory" null="true" />
      <int value="10" />                                          <!--  maxActive -->
      <byte value="1" />                                         <!--  wait mode -->
      <long value="10000" />                                  <!--  wait time 10000 ms -->   
      <int value="10" />                                           <!-- maxIdel -->
      <int value="3" />                                             <!-- minIdel --> 
      <boolean value="true" />                                
      <boolean value="true" />
      <long value="600000" />
      <int value="5" />
      <long value="3600000" />
      <boolean value="true" />
   </object>
  
   <object class="org.apache.commons.pool.impl.GenericKeyedObjectPoolFactory" null="true" />


   <string null="true" />
  
   <boolean value="false" />
  
   <boolean value="true" />
</object>

*********************************************************************************************************

3. 커넥션 풀 관련 드라이버 로딩하기

소스파일) \WEB-INF\src\com\javasoft\db\DBCPInit.java
*********************************************************************************************************
package com.javasoft.db;

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

public class DBCPInit extends HttpServlet {
    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);
            }            
            Class.forName("org.apache.commons.dbcp.PoolingDriver");            
        } catch(Exception ex) {
            throw new ServletException(ex);
        }
    }
}

*********************************************************************************************************

4. 웹 어플리케이션이 시작될 때 DBCPInit 서블릿 클래스가 시작될 수 있도록 지정하기

소스파일) \WEB-INF\web.xml
*********************************************************************************************************
<?xml version="1.0" encoding="euc-kr"?>
....
....
  <servlet>
     <servlet-name>DBCPInit</servlet-name>
     <servlet-class>com.javasoft.db.DBCPInit</servlet-class>
     <load-on-startup>1</load-on-startup>
     <init-param>
        <param-name>jdbcdriver</param-name>
        <param-value>oracle.jdbc.driver.OracleDriver</param-value>
     </init-param>
  </servlet>
</web-app>
*********************************************************************************************************

5. 커넥션을 가져오는 DBUtil 클래스
  - 커넥션을 구하는 클래스인 별도의 DBConn 클래스를 작성하는것이 개발하는데 편리하다.

소스파일) \WEB-INF\com\javasoft\db\DBConn.java
********************************************************************************************************
package com.javasoft.db;

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

public class DBConn {
    public static Connection getConnection(String poolName)
    throws SQLException {
        return DriverManager.getConnection(
            "jdbc:apache:commons:dbcp:/"+poolName);
    }
}
*********************************************************************************************************
6. 사용방법
    - 커넥션을 구하는 곳에 다음과 같이 해주면 된다.
try {
   conn = DBConn.getConnection("pool");

'Programming > JSP' 카테고리의 다른 글

JSP EL(Express Language) 표현언어  (0) 2011.03.24
JSP Custom Tag  (1) 2011.03.24
JavaBean  (2) 2011.03.24
JSP Action Tag  (1) 2011.03.24
JSP 의 내장객체  (1) 2011.03.24

1. JDBC 사용 기본 문법


 1) 가장 기본적인 문법.

 import java.sql.*;  //1. 임포트하자. 

public class JDBCTest {

public static void main(String[] args) {

//2. JDBC 드라이버 설치 (JAVA 설치되 경로의 ext 폴더에 넣어준다)

String driver = "oracle.jdbc.driver.OracleDriver";

String url = "jdbc:oracle:thin:@localhost:1521:XE";  //jdbc의 버전과 드라이버정보를 표기한 후 접속할 IP와 Port번호와 SID를 입력.

try{

Class.forName(driver);

}catch(ClassNotFoundException ex){

System.out.println("Class Not Found");

}

//3. Oracle DB에 Connection 하자.

//4. Statement  객체 생성하자.

//5. SQL 실행

// String sql = "SELECT SYSDATE FROM dual";

String sql = "Select zipcode, sido, gugun,dong,bunji From zipcode Where dong like '%야탑동%' Order by zipcode";

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

try{

conn = DriverManager.getConnection(url,"scott","tiger");

stmt = conn.createStatement();

rs = stmt.executeQuery(sql);

rs.next(); // rs값의 첫번째 값을 읽는다!

java.util.Date now = rs.getDate(1);

System.out.println(now);

}catch(SQLException ex){

System.out.println(ex);

}

//6. Close 하자

finally{

try{

if(conn !=null) conn.close();

if(conn !=null) stmt.close();

}catch(SQLException ex){

System.out.println(ex);

}

}

}

}


 2) DriverManager를 이용해 Driver를 등록하는 방법

 import java.sql.DriverManager;

import java.sql.SQLException;

public class JDBCTest {

public static void main(String[] args) {

//DriverManager를 이용한 Driver Loading

try{

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 

//deregisterDriver로 해제 가능

System.out.println("성공");

}catch(SQLException ex){}

}

}



 3) properties를 이용한 DB 정보 입력

 public DBBean(){//Constructor

info = new Properties();

try{

info.load(new FileInputStream("D:\\OracleRoom\\dbinfo.properties"));

}catch(IOException ex){

System.out.println(ex.toString());

}

}







2. Java 에서 DB의 접근 속도를 줄이는법.

 1) Prepared Statement

   - 처음 문장을 선언할 때 문법 검사를 하지않고 마지막 값을 넣을 때 문법 검사를 하기때문에 속도가 더 빠르다.

 Connection conn = bean.getConnection();

int[] deptnoArray = {50,60,70,80,90};

String[] dnameArray = {"전산실","영업부","관리부","자재부","총무부"};

String[] locArray = {"서울","부산","대전","광주","대구"};

String sql = "Insert into dept(deptno, dname, loc) Values (?,?,?)"; //값을 넣지 않고 지나간다.

PreparedStatement pstmt = conn.prepareStatement(sql);

for (int i = 0; i < 5; i++) {

pstmt.setInt(1, deptnoArray[i]);

pstmt.setString(2, dnameArray[i]);

pstmt.setString(3, locArray[i]);

int row = pstmt.executeUpdate();

System.out.println(row +"개의 행이 반영됨");

}

bean.connClose();


 2) Batch 파일 형태로 쿼리를 한번에 모와서 실행하는 방법

 Connection conn = bean.getConnection();

int[] deptnoArray = {50,60,70,80,90};

String[] dnameArray = {"전산실","영업부","관리부","자재부","총무부"};

String[] locArray = {"서울","부산","대전","광주","대구"};

Statement stmt = conn.createStatement();

for (int i = 0; i < 5; i++) {

String sql = "Insert into dept values("+deptnoArray[i]+",'"+dnameArray[i]+"','" +locArray[i]+"')";

stmt.addBatch(sql);   // 쿼리문 저장,

}

int [] row = stmt.executeBatch();  //한번에 실행

System.out.println(row.length+"개의 행이 반영되었습니다");

bean.connClose();


'Programming > JAVA' 카테고리의 다른 글

Using openCSV in JAVA  (0) 2013.11.20
이클립스 JSP plug in / 환경설정  (3) 2011.03.24
JDBC 설정  (2) 2011.03.24
JAVA IO  (1) 2011.03.24
JAVA Threads  (2) 2011.03.24

1. MSSQL 같은 경우 driver를 직접 홈페이지에서 받아야 하지만, Oracle같은 경우는 설지할 때 설치경로의 jdbc 폴더 내에 압축파일로 저장되어있다. (ojdbc14.jar)

 1) JAVA에서 외부 프로그램의 드라이버를 저장하는 곳이 따로 있다. 바로,

 C:\Program Files\Java\jdk1.6.0_23\jre\lib\ext\ 아래에 복사하여 넣어둔다.

 2) 일반 사용자의 경우에는 

  C:\Program Files\Java\jre6\lib\ext\ 에 넣어둔다.


2. Eclipse 환경에서는 JDBC를 사용할 프로젝트만 Build Path 의 ADD external Archives에서 추가하면된다.



3. Eclipse 에서 Oracle Plug in 설치.

 1)http://quantum.sourceforge.net/    에서 플러그인을 다운

 2)com.quantum.feature_3.3.9_update_site_format.jar  의 압축을 푼다.

 3)그 폴더를 이클립스에서 help-Install new software... 에서 ADD한 후 local에 압축 푼 플러그인을 선택한다.

 4)프로그램을 재시작하여 Window-Perspective-Other.. 에 보면 Quantum DB를 선택할 수 있다. 

 5)이후 Database Bookmarks에 원하는 db를 추가하여 연결 할 수 있다. 드라이버는 oracle.jdbc.diver.OracleDriver를 선택.









ps-----------------------------------------------------------------------------


1) JDBC에서의 index는 Java에서 특별하게 1부터 시작한다.

'Programming > JAVA' 카테고리의 다른 글

이클립스 JSP plug in / 환경설정  (3) 2011.03.24
JDBC 문법  (2) 2011.03.24
JAVA IO  (1) 2011.03.24
JAVA Threads  (2) 2011.03.24
Java Call by value, Call by reference  (2) 2011.03.24

+ Recent posts