我能够连接到hive数据库并对其执行查询,而无需加载org.apache.hive.jdbc.hivedriver?这是怎么发生的?我们知道,如果要连接到任何数据库,首先需要使用class.forname(“fullyqualified driver class name”)加载驱动程序。但在我的例子中,我可以连接到hivedb而不必编写上述代码。下面是我的代码。connection conn=drivermanager.getconnection(url、用户名、密码);
yvt65v4c1#
“我们知道,如果我们想连接到任何数据库,首先我们需要加载驱动程序”--好吧,你一定要更新这些知识。。。oracle/sun官方文档摘录:https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html在以前版本的jdbc中,要获得连接,首先必须通过调用方法初始化jdbc驱动程序 Class.forName ...在类路径中找到的任何JDBC4.0驱动程序都将自动加载(但是,必须使用该方法手动加载JDBC4.0之前的任何驱动程序 Class.forName )https://docs.oracle.com/javase/7/docs/api/java/sql/drivermanager.html作为初始化的一部分,drivermanager类将尝试加载 jdbc.drivers 系统属性。这允许用户自定义应用程序使用的jdbc驱动程序...drivermanager方法getconnection和getdrivers得到了增强,以支持java标准版服务提供程序机制。JDBC4.0驱动程序必须包含 META-INF/services/java.sql.Driver . 此文件包含java.sql.driver的jdbc驱动程序实现的名称...应用程序不再需要使用class.forname()显式加载jdbc驱动程序。当前使用class.forname()加载jdbc驱动程序的现有程序将继续工作,无需修改
Class.forName
jdbc.drivers
META-INF/services/java.sql.Driver
1条答案
按热度按时间yvt65v4c1#
“我们知道,如果我们想连接到任何数据库,首先我们需要加载驱动程序”--好吧,你一定要更新这些知识。。。
oracle/sun官方文档摘录:
https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html
在以前版本的jdbc中,要获得连接,首先必须通过调用方法初始化jdbc驱动程序
Class.forName
...在类路径中找到的任何JDBC4.0驱动程序都将自动加载(但是,必须使用该方法手动加载JDBC4.0之前的任何驱动程序
Class.forName
)https://docs.oracle.com/javase/7/docs/api/java/sql/drivermanager.html
作为初始化的一部分,drivermanager类将尝试加载
jdbc.drivers
系统属性。这允许用户自定义应用程序使用的jdbc驱动程序...
drivermanager方法getconnection和getdrivers得到了增强,以支持java标准版服务提供程序机制。JDBC4.0驱动程序必须包含
META-INF/services/java.sql.Driver
. 此文件包含java.sql.driver的jdbc驱动程序实现的名称...
应用程序不再需要使用class.forname()显式加载jdbc驱动程序。当前使用class.forname()加载jdbc驱动程序的现有程序将继续工作,无需修改