jdbc

作者: 思而忧 | 来源:发表于2017-08-25 14:37 被阅读0次

关于jdbc的用法很多教程,但是教程上都没有说过关于开头的驱动的写法的原因,自己去找了一下资料,这里稍作探讨。

1.png

这是很多教材上的驱动的写法,但很少人去说为什么要用Class.forName("com.mysql.jdbc.Driver");这一句,而DriverManager.getConnection()这个接口,是如何实现的。

package com.mysql.jdbc   
  
public class Driver extends NonRegisteringDriver implements java.sql.Driver {   
 // ~ Static fields/initializers   
 // --------------------------------------------- //   
 // Register ourselves with the DriverManager   
 //   
 static {   
    try {   
              java.sql.DriverManager.registerDriver(new Driver());   
          } catch (SQLException E) {   
              throw new RuntimeException("Can't register driver!");   
          }   
  }   
// ~ Constructors   
 // -----------------------------------------------------------   
/**  
  * Construct a new driver and register it with DriverManager  
  *   
  * @throws SQLException  
  *             if a database error occurs.  
  */  
 public Driver() throws SQLException {   
     // Required for Class.forName().newInstance()   
 }   
}  

先看看Driver的源码,源码上可以看到Driver在被调用的时候就被生成了一个实例。Class.forName()返回与给定的字符串名称相关联类或接口的Class对象,Class.forName是一个静态方法,同样可以用来加载类。forName这句话就是装载类用的(new是根据加载到内存中的类创建一个实例,要分清楚)。
Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段。
com.mysql.jdbc.Driver在装载完后自动帮我们完成了这一步骤

相关文章

  • JDBC

    JDBC原理: JDBC: 抽取JDBC工具类 : JDBCUtils JDBC控制事务:

  • JDBC 的使用

    JDBC JDBC什么是JDBCJDBC 的使用JDBC 的数据类型 什么是JDBC JDBC(Java Data...

  • Java和MySQL简建立连接

    JDBC JDBC插入多条数据 JDBC查询 JDBC动态传参 JDBC回滚 JDBC将数据库中的信息装入List...

  • JDBC

    JDBC JDBC:Java DataBase Connectivity JDBC的本质是什么?JDBC是SUN公...

  • java异常合集

    jdbc com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorExce...

  • Day05--JDBC

    JDBC: 抽取JDBC工具类:JDBCUtils JDBC控制事务

  • JDBC

    JDBC: 抽取JDBC工具类 : JDBCUtils JDBC控制事务:

  • JDBC编程目录

    JDBC编程目录 SQL基础JDBC基础JDBC进阶

  • JDBC和数据库连接池

    1.JDBC介绍1.1 1.1 JDBC介绍 2.JDBC之API2.1 2.1 JDBC之API 3.JDBC例...

  • # day10_JDBC基础

    一,JDBC概述 1.为什么要使用JDBC 1.1没有JDBC 1.2有了JDBC后 2.JDBC的概念 2.1....

网友评论

      本文标题:jdbc

      本文链接:https://www.haomeiwen.com/subject/feepgttx.html