加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 什么Class.forName()方法为JDBC做什么?

发布时间:2020-12-15 04:37:30 所属栏目:Java 来源:网络整理
导读:参见英文答案 What is the purpose of ‘Class.forName(“MY_JDBC_DRIVER”)’?????????????????????????????????????4个 我发现Class.forName方法初始化静态块. Class.forName("com.mysql.jdbc.Driver").newInstance(); 在jdbc 4.0之后,您不需要调用此方法.
参见英文答案 > What is the purpose of ‘Class.forName(“MY_JDBC_DRIVER”)’?????????????????????????????????????4个
我发现Class.forName方法初始化静态块.

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

在jdbc 4.0之后,您不需要调用此方法.但是人们总是在jdbc 4.0版本之后使用这种方法.我的问题是,如果我使用jdbc 4.0,为什么需要使用此方法? Class.forName()方法对JDBC 4.0以及之后做了什么?

这是我的示例代码.我只将mysql-connector.jar添加到我的库中,当我运行此代码时它运行得很好.

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306","root","root");
Statement stmt = con.createStatement();
System.out.println("Created DB Connection....");

解决方法

它获取由给定FQN表示的Class对象.如果之前未加载,它也会加载该类.这具有初始化静态类变量和运行任何静态块的副作用.

使用最新的JDBC版本,您不再需要Class.forName()来加载驱动程序,使用较旧的驱动程序版本它是必需的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读