为什么在JDBC要使用Class.forName();这句话

Posted 刘刚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么在JDBC要使用Class.forName();这句话相关的知识,希望对你有一定的参考价值。

为什么在调用JDBC的时候,我们总要写这句话:Class.forName("驱动类");
解释:
在JDBC编程中一般有以下几个步骤:
1》加载驱动,也就是Class.forName("驱动类");
2》建立连接,也就是DriverManager.getConnection();
3》准备SQL语句
4》执行SQL语句
5》获取结果
6》对结果进行一系列的操作
这里的解释要从第二个工程开始:建立连接的过程  DriverManager.getConnection();
JDBC提供的DriverManager类用于获取可用的JDBC驱动,并在用户需要时选择合适的驱动提供给用户,但是其跟踪不是自动的,必须由可用的JDBC驱动的Driver类自己在DriverManager上进行注册,而这个注册过程是在Driver(驱动类)的静态代码完成,Class.forName("org.postgresql.driver");这句就是为了加载这个类进入内存,并执行静态初始化过程。事实上这句话在这里的用处就是强制JVM将驱动类加载到内存,并执行其中的静态代码段,以便将其注册到DriverManager类上去。











以上是关于为什么在JDBC要使用Class.forName();这句话的主要内容,如果未能解决你的问题,请参考以下文章

JDBC学习2:为什么要写Class.forName("XXX")?

Class.forName 似乎仍然是必要的

Class.forName(JDBC_DRIVER) 不再需要?

JDBC Class.forName 与 DriverManager.registerDriver

加载MYSQL JDBC驱动问题

Class.forName(String driverClassName)加载JDBC驱动程序时,底层都做了些什么???