为什么我们更喜欢使用Class.forName(java.mysql.jdbc.Driver)的jdbc驱动程序而不是新的java.mysql.jdbc.Driver

时间:2015-03-18 06:39:57

标签: java jdbc classloader

我已经测试过我可以使用java.mysql.jdbc.Driver代替new java.mysql.jdbc.Driver()来实例化jdbc Class.forName(java.mysql.jdbc.Driver)

只是想知道哪一种更好的方法将驱动程序加载到内存中以及为什么?

请参考我的相关网站链接:)

1 个答案:

答案 0 :(得分:0)

按照惯例,驱动程序在初始化类时初始化并注册自己。 Class.forName()调用正是这样做的:它加载并初始化类(不创建实例)

它还允许驱动程序可配置,因为类名只是一个可以从配置文件中读取的String。

在“现实生活中”你不会自己进行Class.forName()调用,加载JDBC驱动程序通常由持久性框架处理 - 这当然是可配置的,并从某个配置文件中获取驱动程序名称。