> Java > java지도 시간 > 본문

Java의 DriverManager에 대한 간략한 소개

黄舟
풀어 주다: 2017-01-17 15:09:46
원래의
3186명이 탐색했습니다.

행복한 미소

사랑의 신과 악라오

A: "왜 중국보다 서양에서 이혼이 더 많은지 아세요?"

B : "이건 간단한 일이 아닙니다. 서양의 사랑의 신 큐피드는 인형이고, 중국의 큐피드는 달 아래 노인이기 때문입니다. 물론 경험이 훨씬 더 많습니다! "

질문하기

DriverManager 클래스를 간단하게 학습? ? ?

문제 해결

DriverManager는 java.sql 패키지에 있으며 JDBC 드라이버의 기본 서비스 집합을 관리합니다.

[code]package com.evada.de;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.util.Enumeration;

/**
 * 用静态工厂方法管理一个唯一的可重用的连接
 * Created by Ay on 2016/5/1.
 */
public class ConnUtils{

private ConnUtils(){}
private static Connection con;
//在静态代码块中创建与数据库的连接
static{
    try{
        //postgresql驱动名称
        Class.forName("org.postgresql.Driver");
        //数据库连接路径
        String url = "jdbc:postgresql://127.0.0.1:5432/postgres";
        //用户名和密码
        con = DriverManager.getConnection(url, "postgres", "888888");
    }catch(Exception e){
        throw new RuntimeException(e.getMessage(),e);
    }
}
//使用一个静态方法-静态工厂方法,返回connection实例
public static Connection getCon(){
    return con;
}

//main函数测试用
public static void main(String[] args) {
    //获取所有的数据库驱动
    Enumeration<Driver> driverEnum = DriverManager.getDrivers();
    //打印出所有驱动信息
    while(driverEnum.hasMoreElements()){
        System.out.println(driverEnum.nextElement());
    }
}
}
로그인 후 복사

실행 결과:

[code]org.mariadb.jdbc.Driver@7cef4e59
com.alibaba.druid.proxy.DruidDriver@3ada9e37
com.alibaba.druid.mock.MockDriver@4ec6a292
org.postgresql.Driver@71c7db30
로그인 후 복사

설명, 우리 프로젝트 패키지에는 아래와 같은 데이터베이스 드라이버가 있으므로 다음 정보가 인쇄됩니다.

Java의 DriverManager에 대한 간략한 소개

Java의 DriverManager에 대한 간략한 소개

Java의 DriverManager에 대한 간략한 소개

둘의 차이점은

DriverManager.registerDriver(new Driver()); 
Class.forName(“com.mysql.jdbc.Driver”);
로그인 후 복사

org.postgresql.Driver 클래스 소스코드를 보면 다음과 같다. postgresql이 싱글톤 형태와 새로운 드라이버를 사용하고 있다는 것을 알 수 있다. 예를 들어, 데이터베이스에 연결할 때 새 Driver

[code]static {
        sharedTimer = new SharedTimer(logger);

        try {
            //注册
            register();
        } catch (SQLException var1) {
            throw new ExceptionInInitializerError(var1);
        }

        protocols = new String[]{"jdbc", "postgresql"};
    }

    public static void register() throws SQLException {
        if(isRegistered()) {
            throw new IllegalStateException("Driver is already registered......);
        } else {
            Driver registeredDriver = new Driver();
            DriverManager.registerDriver(registeredDriver);
            registeredDriver = registeredDriver;
        }
    }
로그인 후 복사

를 만든 후에 DriverManager의 소스 코드를 살펴보겠습니다. DriverInfo,

[code]//
public static synchronized void registerDriver(java.sql.Driver driver,
            DriverAction da)
        throws SQLException {

        /* Register the driver if it has not already been added to our list */
        if(driver != null) {
            //将驱动包装到DriverInfo中
            registeredDrivers.addIfAbsent(new DriverInfo(driver, da));
        } else {
            // This is for compatibility with the original DriverManager
            throw new NullPointerException();
        }

        println("registerDriver: " + driver);

    }
로그인 후 복사
Class.forName(“com.mysql.jdbc.Driver” ;


위는 Java의 DriverManager에 대한 간략한 소개입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요. )!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿