JDBC-注册数据库驱动

本文探讨了JDBC中关于数据库驱动的注册过程。通常认为需要显式调用Class.forName(${DriverName})来注册驱动,但实际上,Sun(现Oracle)仅提供了注册接口,具体的注册行为由数据库提供商实现。这种设计思想类似于服务提供者模式,允许数据库驱动自我注册,类比于加油站提供加油服务,车辆自行加油。文章通过代码示例说明了这一机制。
摘要由CSDN通过智能技术生成

偶尔会突然短路,想着为什么Class.forName(${DriverName}); DriverManager里就有注册了这个数据库的驱动呢?


    这是因为,我们在思考 注册数据库驱动 的时候,总是想着我们自己去注册,如果没有显式的去做,就不自在。 这还是因为没有一个OO的思想。


    其实呢,注册数据库驱动这个动作,sun只提供了注册的动作,其余的是谁注册它并不关心,这样呢,它就是一个服务提供者,我提供注册的服务给你,你自己去注册就好了。


    就像加油站,我给加油站以及加油的龙头在那,你没油了你自己去拿着龙头加油。我不需要知道你这是桑塔纳还是水泥车还是宝马。


    sun提供给你这个接口,你们数据库提供商就自己拿去注册。


    下面是代码:


     sun提供的数据库驱动管理类:

   

public static synchronized void registerDriver(Driver driver)
        throws SQLException
    {
        registerDriver(driver, null);
    }


    mysql提供的驱动类:(Class.forName()是让JVM去查找指定的类(初始化),并没有实例化,只不过是把类加载到了JVM中。但是由于静态代码和class是在方法区中的,在初始化的时候就会
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值