欢迎来到皮皮网网首页

【456源码棋牌】【机构托盘线源码】【Tp投资源码】drivermanager 源码

来源:boxfilter 函数源码 时间:2024-11-26 13:47:53

1.Class.forName
2.javajdbc连接sqlserver的时候,不需要写class.forname

drivermanager 源码

Class.forName

       ä¸‹è¾¹æ˜¯mysql-connector-java-5.1.6-bin.jar的Driver源代码:

       ----com.mysql.jdbc.Driver----------------------------------------------------

       .package com.mysql.jdbc;

       .import java.sql.SQLException;

       .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!");

       . }

       . }

       . public Driver() throws SQLException {

       . // Required for Class.forName().newInstance()

       . }

       .}

       ------------------------------------------------------------------------

       å…¶å®žï¼Œåœ¨Class.forName()的时候系统会执行动态加载类的static块,也就是-行,其中的代码是向DriverManager注册MySQL的Driver,现在大家知道为什么要执行Class.forName()了吗???

       ä¹Ÿå°±æœ‰Connection conn = DriverManager.getConnection("连接字符串");了。

javajdbc连接sqlserver的时候,不需要写class.forname

       Java JDBC 连接 SQL Server 不需书写 class.forName 的原理在于高版本的 Oracle 和 MySQL 已采用最新 SPI 技术,驱动类名在 jar 包的 META-INF/services/java.sql.Driver 文件中定义。DriverManager 源码中的456源码棋牌静态块 loadInitialDrivers() 显示,这行代码能加载类路径下所有 jar 包中 META-INF/services/java.sql.Driver 文件定义的类,此类需继承自 java.sql.Driver。机构托盘线源码Class.forName 的Tp投资源码主要目的是初始化数据库驱动,执行驱动的静态块代码,其实质是 DriverManager.registerDriver(driver); 方法。由于开发者的明确配置,驱动包发布时已直接指定驱动名,因此无需再次书写 class.forName。