OraclePoolConnection 정보

5071 단어
JDBC3.0규범은 데이터베이스 연결 탱크의 실현을 지원하기 위해 다음과 같은 종류와 인터페이스를 규정했다. 
  • javax.sql.ConnectionEvent     
  • javax.sql.ConnectionPoolDataSource     
  • javax.sql.PooledConnection     
  • javax.sql.ConnectionEventListener    

  • PooledConnection 객체는 데이터 소스에 대한 물리적 연결을 나타냅니다.그러면 Pooled Connection을 두 번 실행합니다.getConnection 작업에서 얻은 논리적 연결 뒤에 있는 물리적 연결은 같습니다.그렇습니다. 코드 유효성 검사:
    
      
      
      
      
    1. import java.sql.Connection;  
    2. import java.sql.PreparedStatement;  
    3. import java.sql.SQLException;  
    4.  
    5. import oracle.jdbc.pool.OracleConnectionPoolDataSource;  
    6. import oracle.jdbc.pool.OraclePooledConnection;  
    7.  
    8. public class pooledConnection {  
    9.     static OraclePooledConnection opc;  
    10.  
    11.     public static void main(String args[]) throws SQLException,  
    12.             InterruptedException {  
    13.         OracleConnectionPoolDataSource ps = null;  
    14.         ps = new OracleConnectionPoolDataSource();  
    15.  
    16.         ps.setDatabaseName("orcl");  
    17.         ps.setServerName("localhost");  
    18.         ps.setPortNumber(1521);  
    19.         ps.setDriverType("thin");  
    20.         ps.setUser("guojje");  
    21.         ps.setPassword("guojje");  
    22.  
    23.         opc = (OraclePooledConnection) ps.getPooledConnection();  
    24.  
    25.         Connection c1 = opc.getConnection();  
    26.  
    27.         c1.setAutoCommit(false);  
    28.  
    29.         PreparedStatement p1 = c1  
    30.                 .prepareStatement("insert into test values(1)");  
    31.         p1.execute();  
    32.         //  
    33.  
    34.         Connection c2 = opc.getConnection();  
    35.           
    36.         System.out.println(c2.equals(c1));  
    37.           
    38.         c2.setAutoCommit(false);  
    39.         PreparedStatement p2 = c2  
    40.                 .prepareStatement("insert into test values(2)");  
    41.         p2.execute();  
    42.         c2.commit();//  
    43.  
    44.         Thread.currentThread().sleep(1000000);  
    45.  
    46.     }  

    데이터베이스 메모리표를 보면 두 번의 조작이 모두 성공할 수 있다.c1과 c2의 밑바닥 물리적 연결이 같다는 것을 설명한다.

    좋은 웹페이지 즐겨찾기