JDBC——小知识 :Class.forName("com.mysql.jdbc.Driver")的浅谈
发布日期:2021-05-07 02:35:18 浏览次数:33 分类:精选文章

本文共 899 字,大约阅读时间需要 2 分钟。

传统的使用jdbc来访问数据库的流程为:

Class.forName(String): 加载类,并且执行类初始化

Class.forName(“com.mysql.jdbc.Driver”);String url = “jdbc:mysql://localhost:3306/test?user=root&password=123456″;Connection con = DriverManager.getConnection(url);Statement statement = con.createStatement();

在加载某一 Driver 类时,它应该创建自己的实例并向 DriverManager 注册该实例。这意味着用户可以通过调用以下程序加载实例和注册一个驱动程序

Class.forName(“foo.bah.Driver”) ——来自Java Platform Se6帮助文档的一段话
所以
Class.forName(“foo.bah.Driver”)等价于下面两行
Driver driver=(Driver)class2.newInstance();
DriverManager.registerDriver(driver);

阅读com.mysql.jdbc.Driver类中的源码会发现有下面一行代码

static {   try {   java.sql.DriverManager.registerDriver(new Driver());} catch (SQLException E) {   throw new RuntimeException(“Can’t register driver!”);}}

在Class.forName加载完驱动类,开始执行静态初始化代码时,会自动新建一个Driver的对象,并调用DriverManager.registerDriver把自己注册到DriverManager中去。

所以不用在写

DriverManager.registerDriver(driver);

和不用在加载一个驱动类,得到Connection

上一篇:JDBC——(4)获取数据库连接——方式五(最终版)
下一篇:JDBC——(4)获取数据库连接——方式四

发表评论

最新留言

很好
[***.229.124.182]2025年04月03日 19时47分31秒