【发布时间】:2021-05-09 14:55:47
【问题描述】:
我正在用 Java 编写一个简单的程序,用于演示使用 JDBC 在 MySQL 表中插入数据。但是程序在注册驱动的时候会产生ClassNotFoundException。
import java.sql.*;
public class test {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException e) {
System.out.println("ClassNotFoundException: "+e.getMessage());
}
}
}
我已经在同一目录下添加了驱动 JAR 文件。
编译程序:
javac -cp ".:~/Programs/D/friends/assignment/driver.jar;" test.java
执行程序:
java -cp ".:~/Programs/D/friends/assignment/driver.jar;" test
O/p:
ClassNotFoundException: com.mysql.jdbc.Driver
【问题讨论】:
-
driver.jar是 MySQL JDBC 的库吗? “…/driver.jar”后面的分号是什么原因? -
而且您知道,当您使用当前版本的 JDBC 驱动程序时,不需要显式注册驱动程序?
-
@tquadrat 是的,它是 MySQL 的 JDBC 驱动程序,后面的分号是因为在设置类路径时,我们使用分号分隔两个不同的类路径。而且我知道没有必要注册驱动程序,但我这样做是因为在创建连接时代码会引发异常。所以我明确注册了驱动程序以确认驱动程序是否正在注册。