• 注册jdbc驱动的三种方式


    java.sql.DriverManger类简介

     

    java的驱动管理类。管理一组 JDBC 驱动程序。

    javax.sql.DataSource 接口是 JDBC 2.0 API 中的新增内容,它提供了连接到数据源的另一种方法。使用 DataSource 对象是连接到数据源的首选方法。更深的理解请参见java 文档。

    DiverManager类有个vector(向量)类型的属性drivers。可在向量中加入很多驱动,当DriverManager去取连接的时候,若果drivers里有很多驱动,它会把drivers里面的各个驱动的url和创建连接时传进来的url逐一比较,遇到对应的url,则建立连接。 

     

    方法一

     

    System.setProperty("jdbc.drivers","com.MySQL.jdbc.Driver");

    通过系统的属性设置注册驱动,如果要注册多个驱动,则System.setProperty("jdbc.drivers","com.mysql.jdbc.Driver:com.Oracle.jdbc.Driver");

    这种驱动注册方式很少使用。

     

    方法二

     

    Class.forName("com.mysql.jdbc.Driver");

    这种方式不会对具体的驱动类产生依赖(即不用import驱动类)。

    Class类的forName方法中对参数指定的类进行了装载操作。在这里将com.mysql.jdbc.Driver类装载到jvm。众所周知,类装载时,将执行被装载类的静态代码块,而Driver类有一个静态代码块如下:

    static{

       try{

           java.sql.DriverManager.registerDriver(newDriver());

        }catch(SQLExceptione){

            thrownew RuntimeException("can't register driver!");

        }

    }

    所以在装载过程中即完成了driver的注册。这也是使用最多的一种注册驱动方式。

     

    方法三

     

    DriverManager.registerDriver(newcom.mysql.jdbc.Driver());

    会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖。

    具体来说就是:

    1,装载Driver类时注册一次驱动(有关类装载,请参考http://www.yanwushu.com/post/54.html),执行此代码时,又注册一次。

    2,由于实例化了com.mysql.jdbc.Driver.class,导致必须import该类,从而具体驱动产生了依赖。不方便扩展代码。

  • 相关阅读:
    预备作业02:体会做中学(Learning By Doing)
    寒假作业01
    20210418第 237 场周赛(一)
    机器学习第七堂课20210415
    云计算与信息安全第七节课20210413
    操作系统第七堂课2021年0412内存管理基础
    机器学习第六堂课20210408
    云计算与信息安全第六节课20210406
    机器学习第五节课20210401
    云计算与信息安全第五堂课20210330
  • 原文地址:https://www.cnblogs.com/TaoLeonis/p/7126983.html
Copyright © 2020-2023  润新知