데이터베이스 연결 풀의 c3p0 및 Druid

데이터베이스 연결 풀


개념: 사실은 하나의 용기(집합)로 데이터베이스에 연결된 용기를 저장한다.시스템이 초기화되면 용기가 만들어지고 용기에 연결 대상을 신청합니다. 사용자가 데이터베이스에 접근할 때 용기에서 연결 대상을 얻고 사용자가 접근한 후에 연결 대상을 용기에 돌려줍니다.
장점: 1.자원을 절약하다.사용자 액세스 효율성
구현: 표준 인터페이스: DataSource javax.sql 패키지의 1.방법:* 연결 가져오기:getConnection()* 연결 반환:Connection.close().연결 대상 연결이 연결 풀에서 가져온 경우 연결을 호출합니다.close () 방법은 연결을 닫지 않습니다.연결을 돌려주는 겁니다.
일반적으로 우리는 그것을 실현하지 않고 데이터베이스 업체가 실현한다
  • C3P0: 데이터베이스 연결 풀 기술
  • Druid: 데이터베이스 연결 탱크 실현 기술, 알리바바가 제공한
  • C3P0: 데이터베이스 연결 풀 기술*단계: 1.jar 패키지 가져오기 (두 개) c3p0-0.9.5.2.jar와 mchange-commons-java-0.2.12.jar, 데이터베이스 드라이브 jar 패키지 가져오는 것을 잊지 마세요.정의 프로필:이름:c3p0.properties 또는 c3p0-config.xml 경로: src 디렉터리에 파일을 직접 놓으면 됩니다.핵심 대상 데이터베이스 연결 탱크 대상 만들기 ComboPooled DataSource 연결 가져오기: getConnection
    	 :
    		 //1. 
            DataSource ds  = new ComboPooledDataSource();
            //2.  
            Connection conn = ds.getConnection()
    

    Druid: 데이터베이스 연결 탱크 실현 기술, 알리바바가 제공한 1.단계: 1.jar 패키지 druid-1.0.9 가져오기jar 2. 정의 프로필: * 은properties 형식의 * 임의의 이름으로 할 수 있으며 임의의 디렉터리 아래에 놓을 수 있습니다.구성 파일을 로드합니다.Properties 4. 데이터베이스 연결 풀 객체 가져오기: 공장에서 DruidDataSourceFactory 5.연결 가져오기: getConnection
    	*  :
    		 //3. 
            Properties pro = new Properties();
            InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
            pro.load(is);
            //4. 
            DataSource ds = DruidDataSourceFactory.createDataSource(pro);
            //5. 
            Connection conn = ds.getConnection();
    

    도구 클래스 정의 1.클래스 JDBCutils 2.정적 코드 블록 불러오기 설정 파일을 제공하고 연결 탱크의 대상을 초기화합니다.제공 방법 1.연결 가져오기 방법: 데이터베이스 연결 탱크를 통해 연결을 가져오기 2.리소스 여유 확보 3.풀을 연결하는 방법
    	*  :
    		public class JDBCUtils {
    
    		    //1.  DataSource
    		    private static DataSource ds ;
    		
    		    static{
    		        try {
    		            //1. 
    		            Properties pro = new Properties();
    		            pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
    		            //2. DataSource
    		            ds = DruidDataSourceFactory.createDataSource(pro);
    		        } catch (IOException e) {
    		            e.printStackTrace();
    		        } catch (Exception e) {
    		            e.printStackTrace();
    		        }
    		    }
    		
    		    /**
    		     *  
    		     */
    		    public static Connection getConnection() throws SQLException {
    		        return ds.getConnection();
    		    }
    		
    		    /**
    		     *  
    		     */
    		    public static void close(Statement stmt,Connection conn){
    		       /* if(stmt != null){
    		            try {
    		                stmt.close();
    		            } catch (SQLException e) {
    		                e.printStackTrace();
    		            }
    		        }
    		
    		        if(conn != null){
    		            try {
    		                conn.close();// 
    		            } catch (SQLException e) {
    		                e.printStackTrace();
    		            }
    		        }*/
    		
    		       close(null,stmt,conn);
    		    }
    		
    		
    		    public static void close(ResultSet rs , Statement stmt, Connection conn){
    		
    		
    		        if(rs != null){
    		            try {
    		                rs.close();
    		            } catch (SQLException e) {
    		                e.printStackTrace();
    		            }
    		        }
    		
    		
    		        if(stmt != null){
    		            try {
    		                stmt.close();
    		            } catch (SQLException e) {
    		                e.printStackTrace();
    		            }
    		        }
    		
    		        if(conn != null){
    		            try {
    		                conn.close();// 
    		            } catch (SQLException e) {
    		                e.printStackTrace();
    		            }
    		        }
    		    }
    		
    		    /**
    		     *  
    		     */
    		
    		    public static DataSource getDataSource(){
    		        return  ds;
    		    }
    		
    		}
    

    좋은 웹페이지 즐겨찾기