<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 方法從而獲得連接。
        當然了 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
    主站蜘蛛池模板: 亚洲av无码不卡| 亚洲AV无码一区东京热久久| 91亚洲性爱在线视频| 久操免费在线观看| 亚洲国产高清视频| 久久久免费精品re6| 亚洲色图黄色小说| 啦啦啦完整版免费视频在线观看 | 四虎免费影院4hu永久免费| 亚洲日本一线产区和二线产区对比| 日韩免费一区二区三区在线播放| 亚洲午夜在线一区| 成在人线AV无码免费| 亚洲av无码专区国产不乱码| 国产成人免费片在线视频观看| 精品视频免费在线| 久久精品夜色噜噜亚洲A∨| 成人免费乱码大片A毛片| 亚洲AV人无码综合在线观看| 91老湿机福利免费体验| 亚洲深深色噜噜狠狠网站| 成人免费福利电影| 羞羞视频在线观看免费| 亚洲av丰满熟妇在线播放| 91在线视频免费播放| 色天使亚洲综合一区二区 | 亚洲AV第一页国产精品| 成人免费视频69| 麻豆69堂免费视频| 亚洲AV无码AV男人的天堂| 国产免费看JIZZ视频| 在线视频亚洲一区| 久久久久亚洲AV成人片| 日韩一品在线播放视频一品免费| 精品久久久久久无码免费| 亚洲一区二区无码偷拍| 亚洲VA综合VA国产产VA中| 午夜影院免费观看| 老司机福利在线免费观看| 久久久久亚洲AV片无码| 免费一级毛片清高播放|