【发布时间】:2016-10-02 14:31:46
【问题描述】:
我想使用 JDBC 我在类路径中添加了 Mysql 驱动程序,如下所示:
但即使我得到这个错误:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在 java.lang.Class.forName0(本机方法)在 java.lang.Class.forName(Class.java:191) 在 dao.JdbcTest1.main(JdbcTest1.java:23)
这是我的代码:
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/bd_italiano";
String utilisateur = "root";
String motDePasse = "";
Connection connexion = null;
try{
Class.forName("com.mysql.jdbc.Driver ");
connexion = DriverManager.getConnection( url, utilisateur, motDePasse );
DatabaseMetaData dbMetaData = connexion.getMetaData();
System.out.println("Type de la base de données : " + dbMetaData.getDatabaseProductName());
System.out.println("Veresion de la base de données : " + dbMetaData.getDatabaseMajorVersion());
System.out.println("Nom du driver : " + dbMetaData.getDriverName());
System.out.println("Nom du user de la base de données : " + dbMetaData.getUserName());
} catch(Exception e) {
e.printStackTrace();
} finally {
if(connexion!=null)
try {
connexion.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
请帮帮我
【问题讨论】:
-
不再需要使用
Class.forName加载 JDBC 驱动程序(假设您使用 JDBC 4(或更高版本)兼容的驱动程序。另外请注意 MySQL Connector/J 5.1.18 已经很老了。