0

这似乎是一个常见问题,但我找不到有效的解决方案。我已经浏览了几十个线程,并一直在和我的老师一起工作。我正在尝试使用 JDBC 连接到 MYSQL。我也在使用 tomcat 服务器并运行 xubuntu 12.04。我收到 ClassNotFound 异常。

我已经尝试了放置在 /tomact/lib 和 /usr/share/java 中的 JDBC mysql-connector-java.jar 驱动程序,并在每个实例中手动构建了路径。我还尝试通过部署程序集添加路径。我试过使用 EXPORT CLASSPATH。没有任何效果。我不能让这个异常停止被抛出。有没有人可以尝试其他解决方案?

我的代码:

public static Connection getConnection() {
    if(connection!=null){
        return connection;
    }else{
        try{
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            String dbURL = "jdbc:mysql://144.91.20.136:3306/jewelryInventoryGallison";
            String username = "javaee";
            String password = "mills2012";

            connection = DriverManager.getConnection(dbURL, username, password);
            return connection;
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }
    }
}

测试类:

public static void main(String[] args) throws Exception{ 
      Connection conn = DatabaseUtils.getConnection();
      Statement st = conn.createStatement();
      ResultSet rs = st.executeQuery("SELECT * FROM Inventory");
      while(rs.next()) {
       System.out.println(rs.getString("name"));
      }

 }

并追踪:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at utils.DatabaseUtils.getConnection(DatabaseUtils.java:19)
at utils.DatabaseUtils.main(DatabaseUtils.java:34)

utils.DatabaseUtils.main(DatabaseUtils.java:35) 处的线程“主”java.lang.NullPointerException 中的异常

对你的帮助表示感谢!

4

5 回答 5

2

将 MySQL-connector-java-5.1.6.jar 放在 Tomcat/lib 目录中终于对我有用。不应该这样做,所以我怀疑我的 Tomcat 安装不是最佳的,部署 war 文件可能有问题

于 2013-10-13T17:02:45.207 回答
2

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

您缺少MySQL驱动程序库。由于您使用的是Mysql数据库,因此请确保您已包含mysql-connector-java.

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.8-dmr</version>
</dependency>
于 2012-12-13T05:12:45.473 回答
1

版本不匹配可能会导致此错误。我自己被困在这个错误中好几天了。请检查 jdbc 连接器的版本。最新的连接器需要 java 1.8。在我的情况下,我的 tomcat 版本不支持我添加的连接器版本,所以也请检查一下。

PS:Tomcat-8.0.32;mysql-connector - 5.1.30 与 java 1.7 作品 (Y)

于 2016-06-24T11:16:10.660 回答
0

修改tomcat'conf'文件夹中'catalina.properties'文件中的'common.loader'属性,如下图

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar

还要在 tomcat 'lib' 文件夹中添加 'mysql-connector-java-5.0.8-bin.jar'

于 2012-12-13T05:35:56.403 回答
0

即使在类路径中配置了连接器,tomcat 也无法正确加载。因此,将 mysql-connector-jar 文件也粘贴到 WEB_INF 下的 lib 文件夹中,然后再次尝试运行。

在此处输入图像描述

于 2022-02-17T10:05:17.087 回答