SQL Explorer 환경 구성
1. Perspective 실행
    - Windows->Open Perspective->Other 에서 SQLExplorer 실행

2. JDBC Driver 설정
    - Windows->Preferences->SQLExplorer->JDBC Drivers 항목 선택
    - Oracle Thin Driver -> Edit
    - 접속 URL 패턴 바꾸거나 말거나 하고 Extra Class Path 탭에서 Add 버튼 눌러 jdbc 드라이버 파일 (ex. ojdbc-14.jar)을 맵핑
    - 파일의 위치는 ex. C:\ANYFRAME_LIB

3. eclipse 왼쪽 connection view 에서 마우스 오른쪽 버튼 클릭 -> New Connection Profile 
    자신에게 맞게 profile 하나 만듬

4. 더블클릭 하면 -> 정상적으로 연결되면 세션이 하나 생김
by Bill | 2008/04/07 10:34 | 트랙백(2) | 덧글(0)
날짜 입력용 calendar javascript
calendar.js

1. 첨부 파일을 import 한후,

2. <script type="text/javascript" src="경로/calendar.js"></script>

3. 사용하고 싶은 곳에 onClick="showGomsCalendar()" 추가
by Bill | 2008/04/03 15:11 | HTML & Javascript | 트랙백 | 덧글(0)
JDBC connection pooling 예제(펌)

커넥션풀(connection pool) 이란?
 
 
★ 처음에 DB에 접속하는 과정이 가장 부하가 많이 걸린다.

getConnection() 할 때 부하가 가장 크다. 그래서 나온게 Connection Pool.

 

Connection Pool 이란, DB에 접근할 때마다 연결을 했다 끊었다 하는게 아니라,

자바 프로그램에서 미리 몇 개의 연결을 해 놓은 후 - 이게 Connection Pool -

필요할 때마다 Pool에서 연결을 빌려와서 사용한 후, 다시 돌려준다. - 끊는게 아니다.

 

Pool을 너무 크게 해놓으면 - 연결을 너무 많이 해 놓으면 - 메모리의 소모가 크고,

너무 적게 해놓으면 대기하는 시간이 길어진다.

적당한 크기로 설정해야 한다. 웹사이트에 걸리는 부하에 따라 조정해야 한다.

 

★ Connection Pool 을 사용하는 방법

① 인터넷 상에 공개된 소스

  DBConnectionMgr.java - 별로라는데...?

② Oracle Connection Pool

  오라클에서 제공하는 드라이버에만 있는 것. 오라클에 쓰기에는 좋다.

③ Tomcat WAS - DBCP

 

/*******************************************************************************************
*   파일        : DBConnectionPoolClient.java
*   용도        : 오라클이 제공하는 ConnectionPool을 사용한 예제
*   작성자     : 성홍제
*   작성일     : 2006. 07. 25
*   Version   : 1.0
*******************************************************************************************/

package ConnectionPool;

import java.sql.*;

import javax.sql.*; // 오라클의 Connection Pool 기능은 여기에 들어있다.
import oracle.jdbc.driver.*;
import oracle.jdbc.pool.*;

public class DBConnectionPoolClient
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        try
        {
            OracleConnectionPoolDataSource ocpds = new OracleConnectionPoolDataSource();
           
            ocpds.setURL("jdbc:oracle:thin:@61.109.232.128:1521:ora92");
            ocpds.setUser("scott");
            ocpds.setPassword("tiger");
           
            // Connection Pool 생성
            PooledConnection pc = ocpds.getPooledConnection();
           
            Connection con = null;
            PreparedStatement pstmt = null;
            String sql = "select * from emp";
            ResultSet rs = null;
           
            // 강제로 무한루프 - Connection Pool을 테스트한다.
            while(true)
            {
                // Pool 에서 하나 빌려온다.
                con = pc.getConnection();
                pstmt = con.prepareStatement(sql);
                rs = pstmt.executeQuery(); //질의문 수행
               
                while (rs.next())
                {
                    String str = "empno: " + rs.getInt("empno") + "\t"

                                  + "ename: " + rs.getString("ename");
                   
                    System.out.println(str);
                }
               
                // close지만 실제로 연결을 끊는게 아니라 Pool에 돌려준다.
                con.close();
            }
        }
        catch(Exception e)
        {}

    }

}


 


/*******************************************************************************************
*   파일        : DBConnectionPoolClient.java
*   용도        : 오라클이 제공하는 ConnectionPool을 사용한 예제와
*                   인터넷에서 구할 수 있는 Connection Pool을 관리해주는 클래스인 DBConnectionMgr을 이용한 예제
*   작성자     : 성홍제
*   작성일     : 2006. 07. 25
*   Version   : 1.0
*******************************************************************************************/

package ConnectionPool;

import java.sql.*;
import javax.sql.*; // 오라클의 Connection Pool 기능은 여기에 들어있다.
import oracle.jdbc.driver.*;
import oracle.jdbc.pool.*;

public class DBConnectionPoolClient
{
    // Oracle Connection Pool을 쓸 것인가 DBConnectionMgr Class를 쓸 것인가
    public static final boolean IsUsedOCPDS = false;

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        OracleConnectionPoolDataSource ocpds = null;
        PooledConnection pc = null;
       
        DBConnectionMgr mgr = null;
       
        Connection conn = null;
        PreparedStatement pstmt = null;
        String sql = "select * from member";
        ResultSet rs = null;
       
        try
        {
            if(IsUsedOCPDS)
            {
                ocpds = new OracleConnectionPoolDataSource();
               
                ocpds.setURL("jdbc:oracle:thin:@61.109.232.128:1521:ora92");
                ocpds.setUser("lonelycat");
                ocpds.setPassword("ora123");
               
                // Connection Pool 생성
                pc = ocpds.getPooledConnection();
            }
            else
            {
                mgr = DBConnectionMgr.getInstance();
            }
           
            // 강제로 무한루프 - Connection Pool을 테스트한다.
//            while(true)
//            {
                if(IsUsedOCPDS)
                {

                    // Pool 에서 하나 빌려온다.
                    conn = pc.getConnection();
                }
                else
                {
                    conn = mgr.getConnection();
                }
               
                pstmt = conn.prepareStatement(sql);
                rs = pstmt.executeQuery(); //질의문 수행
               
                while (rs.next())
                {
                    String str = "ID: " + rs.getString("id") + "\t" + "Name: " + rs.getString("name");
                   
                    System.out.println(str);
                }
               
                // close지만 실제로 연결을 끊는게 아니라 Pool에 돌려준다.
                conn.close();
               
                if(!IsUsedOCPDS)
                    mgr.freeConnection(conn);
//            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

    }

}


 

★ 파일명이 이상하게 들어갔지만, 원래 이름은

Pool.properties

DBConnectionMgr.java

출처 : Tong - BlueSky_07님의 Java통

by Bill | 2008/04/01 12:21 | 트랙백 | 덧글(0)
시험볼때 oracle 안될때 해결방법
1. C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN 폴더 안에
    "listener.ora" 파일 내에 (ADDRESS = (PROTOCOL = TCP)(HOST = m80420)(PORT = 1521)) 에서 
    m80420 부분을 자신의 컴퓨터에 맞게 변경
    예) 804호 20번 컴퓨터면 m80420, 1501호 13번 컴퓨터면 m150113

2. C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN 폴더안에
    "tnsnames.ora"파일내에
    XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = m80420)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  ) 에서 m80402 부분을 위의 1번 처럼 자신의 컴퓨터에 맞게 바꾼다.
by Bill | 2008/03/31 08:02 | Database | 트랙백 | 덧글(0)
HttpSession 관리 예시 JSP
<%
     Integer coffeeCount = (Integer)session.getAttribute("coffeeCount");
     Integer hongteaCount = (Integer)session.getAttribute("hongteaCount");

     if(coffeeCount == null)
         coffeeCount = 0;
     if(hongteaCount == null)
         hongteaCount = 0;
     String order = request.getParameter("order");
     if("coffee".equals(order)){
         coffeeCount++;
     }
     else if("hongtea".equals(order)){
          hongteaCount++;
     }
     session.setAttribute("coffeeCount", coffeeCount);
     session.setAttribute("hongteaCount", hongteaCount);

 %>
 <form method="post" action="#">
 <p>
      Coffee : <input type="radio" id="order" name="order" value="coffee" />
      &nbsp;
      Coffee : <%=coffeeCount %>
      <br />
      Hong tea : <input type="radio" id="order" name="order" value="hongtea" />
      &nbsp;
      Hong tea : <%=hongteaCount %>
      <br />
      <input type="submit" value="주문" />
 </p>
 </form>
by Bill | 2008/03/24 20:59 | 트랙백 | 덧글(0)
< 이전페이지 다음페이지 >