gpt4 book ai didi

java - JDBC Class.forName 与 DriverManager.registerDriver

转载 作者:IT老高 更新时间:2023-10-28 13:54:05 26 4
gpt4 key购买 nike

forName 方法与 registerDriver 加载和注册 JDBC 驱动程序有什么区别?

最佳答案

Class.forName()根本与 JDBC 没有直接关系。它只是加载一个类。

大多数 JDBC 驱动程序类通过调用 registerDriver() 在其静态初始化程序中注册自己。 .

registerDriver() 是您几乎不需要自己调用的真正调用(除非您编写自己的 JDBC 驱动程序)。

请注意,在 JDBC 4 中,如果您的 JDBC 驱动程序是最新的,则您应该不需要其中任何一个,因为可以使用服务定位机制找到驱动程序(即,只需忽略像往常一样打电话并打开您的连接)。见 documentaton of DriverManager详情:

The DriverManager methods getConnection and getDrivers have been enhanced to support the Java Standard Edition Service Provider mechanism. JDBC 4.0 Drivers must include the file META-INF/services/java.sql.Driver. This file contains the name of the JDBC drivers implementation of java.sql.Driver. For example, to load the my.sql.Driver class, the META-INF/services/java.sql.Driver file would contain the entry:

my.sql.Driver

Applications no longer need to explictly load JDBC drivers using Class.forName(). Existing programs which currently load JDBC drivers using Class.forName() will continue to work without modification.

关于java - JDBC Class.forName 与 DriverManager.registerDriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5484227/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com