<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 10,comments - 2,trackbacks - 0
    DriverManager是怎么獲取到連接的?
    1 Class.forName("oracle.jdbc.driver.OracleDriver");
    2 DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orci8","userName","password");

        每個 JDBC 驅(qū)動必須實現(xiàn) java.sql.Driver 接口,而 Class.forName 會在類加載器中加載,此時并不會產(chǎn)生 Driver 的對象,這種加載只會執(zhí)行這個類中的靜態(tài)塊。
        而 JDBC 規(guī)范要求所有實現(xiàn)
    java.sql.Driver 接口的類,必須在靜態(tài)塊中調(diào)用 DriverManager.registerDriver 方法把自己注冊到 DriverManager 中去。DriverManager 通過搜尋已注冊的 Driver 實現(xiàn)類,調(diào)用 connect 方法從而獲得連接。
        當(dāng)然了 connect 方法是在 Driver 接口中聲明的,由具體的 JDBC Driver 類去實現(xiàn)。
    這就是采用 Class.forName 方式獲得連接的辦法。

    如mysql的Driver類
     1 package com.mysql.jdbc;
     2 
     3 import java.sql.SQLException;
     4 
     5 /**
     6  * The Java SQL framework allows for multiple database drivers. Each driver
     7  * should supply a class that implements the Driver interface
     8  * 
     9  * <p>
    10  * The DriverManager will try to load as many drivers as it can find and then
    11  * for any given connection request, it will ask each driver in turn to try to
    12  * connect to the target URL.
    13  * 
    14  * <p>
    15  * It is strongly recommended that each Driver class should be small and
    16  * standalone so that the Driver class can be loaded and queried without
    17  * bringing in vast quantities of supporting code.
    18  * 
    19  * <p>
    20  * When a Driver class is loaded, it should create an instance of itself and
    21  * register it with the DriverManager. This means that a user can load and
    22  * register a driver by doing Class.forName("foo.bah.Driver")
    23  * 
    24  * @see org.gjt.mm.mysql.Connection
    25  * @see java.sql.Driver
    26  * @author Mark Matthews
    27  * @version $Id$
    28  */
    29 public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    30     // ~ Static fields/initializers
    31     // ---------------------------------------------
    32 
    33     //
    34     // Register ourselves with the DriverManager
    35     //
    36     static {
    37         try {
    38             java.sql.DriverManager.registerDriver(new Driver());
    39         } catch (SQLException E) {
    40             throw new RuntimeException("Can't register driver!");
    41         }
    42     }
    43 
    44     // ~ Constructors
    45     // -----------------------------------------------------------
    46 
    47     /**
    48      * Construct a new driver and register it with DriverManager
    49      * 
    50      * @throws SQLException
    51      *             if a database error occurs.
    52      */
    53     public Driver() throws SQLException {
    54         // Required for Class.forName().newInstance()
    55     }
    56 }
    posted on 2011-03-06 21:46 showsun 閱讀(434) 評論(0)  編輯  收藏 所屬分類: J2SE
    主站蜘蛛池模板: 一本久到久久亚洲综合| 久久精品一本到99热免费| 成人国产mv免费视频| 亚洲色成人网站WWW永久四虎| 国产情侣激情在线视频免费看| 亚洲一级二级三级不卡| 在线观看免费视频资源| 国产精品亚洲精品青青青| 扒开双腿猛进入爽爽免费视频| 中文字幕亚洲综合小综合在线 | WWW国产亚洲精品久久麻豆| 久久久www成人免费毛片| 亚洲欧洲专线一区| 日本不卡视频免费| eeuss影院www天堂免费| 国产亚洲一区二区三区在线观看 | 亚洲国产精品张柏芝在线观看| 中文免费观看视频网站| 中国china体内裑精亚洲日本| 永久免费bbbbbb视频| 狠狠热精品免费观看| 亚洲中文字幕无码一区 | 免费国产午夜高清在线视频| 亚洲ⅴ国产v天堂a无码二区| 美女内射毛片在线看免费人动物| 亚洲av无码久久忘忧草| 亚洲AV无码一区二三区 | 亚洲A∨精品一区二区三区下载| 国产一卡二卡≡卡四卡免费乱码| 成人网站免费大全日韩国产 | 亚洲成人午夜电影| 国产大片免费观看中文字幕| 中文字幕永久免费视频| 亚洲手机中文字幕| 亚洲第一成人影院| 最近2019免费中文字幕6| 亚洲av无码成人精品国产| 日韩va亚洲va欧洲va国产| 成人毛片免费观看视频| 国产国产人免费人成成免视频| 亚洲成aⅴ人片在线影院八|