前言
最近发现, 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的连接驱动: