不再需要Class.forName(“com.mysql.jdbc.Driver“)

从JDK1.6开始,JDBC4引入了自动注册驱动的机制,不再需要通过`Class.forName()`手动加载。这一变化在MySQL驱动5.1.6及更高版本中得到体现,因为这些版本的jar包包含了`META-INF/services/java.sql.Driver`文件。因此,要实现自动加载,必须同时使用JDK1.6及以上版本和MySQL-connector-java-5.1.6.jar以上的版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

最近发现, mysqL驱动5.1.6可以无需CLass . forName(“com.mysql.jdbc.Driver”);而mysql驱动5.1.5却不行。
搜集相关资料发现:从jdk1.5以后, 1.6使用了jdbc4,jdbc4.0不再需要显示调用class.forName()注册驱动而是自动调用驱动jar包下META-INF\services\java .sql.Driver文本中的类名称去注册。而mysql-5-*-*的jar包虽然也是jdbc4的,但是在5.1.5以后jar包下才有META-INF\services\java.sql.Driver文件驱动的自动加载是jdk1.6与mysql驱动共同作用的结果,两者缺一不可。

总结: jdk1.6及其以上+mysql-connector-java-5.1.5.jar版本以上

演示

MySQL5.1.5的连接驱动:
在这里插入图片描述
MySQL5.1.5的连接驱动如果不写Class.forName("com.mysql.jdbc.Driver"),无法连接MySQL

更改5.1.6版本在这里插入图片描述

MySQL5.1.6的连接驱动:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花伤情犹在

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值