为什么使用JDBC时要调用Class.forName(数据库驱动全类名)并使用DriverManager

    java的JDBC给的是一个规范,给出connection、driver、resultset等接口,要想使用JDBC,就要实现这些接口,而这些接口由mysql等厂商发布的数据库驱动类实现,通过Class.forName(数据库驱动全类名),就把这些接口实现了

    java的JDBC提供了规范,然后提供了一个“插槽”——DriverManager

    DriverManager类存在方法registerDriver,通过addIfAbsent获取“Class.forName(数据库驱动全类名)”对应的驱动,因为实际场景中可以添加多个数据库——又有Oracle又有MySQL,所以项目中可以写多个Class.forName(数据库驱动全类名)

    有这么多driver,如何确定连接的是哪个数据库,这就要靠url,url标志了哪个driver,就连接哪个driver

    DriverManager.getConnection方法拿到数据库url,然后执行一个for循环进行判断,最后获得一个连接对象

    最后要说明的是,java提供的都是接口,上图获取连接对象的方法aDriver.driver.connect(url,info)其实是由mysql实现,如果驱动报错,才会用到java提供的报错的类

posted @ 2021-10-10 23:07  夏·舍  阅读(206)  评论(0)    收藏  举报