mumei2018 发表于 2023-12-15 06:12:53

在学JDBC 但无法链接数据库 请问是怎么回事呢?


但无法链接数据库 请问是怎么回事呢?

驱动包已经成功导入

数据库正常运行

代码如下


package com.itheima.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCDemo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
      Class.forName("com.mysql.jdbc.Dirver");

      String url = "jdbc:mysql://127.0.0.1:3306/db1";
      String username = "root";
      String password = "root";

      Connection conn = DriverManager.getConnection(url, username, password);

      String sql = "update account set money = 2000 where id = 1";

      Statement stmt = conn.createStatement();

      int count = stmt.executeUpdate(sql);

      System.out.println(count);

      stmt.close();
      conn.close();

    }
}

FishC 发表于 2023-12-15 06:13:02

在代码中,找到以下这行代码:

Class.forName("com.mysql.jdbc.Dirver");

将其中的 "Dirver" 修改为 "Driver",因为驱动类的名称应该是 "Driver" 而不是 "Dirver"。

修改后的代码应该是:

Class.forName("com.mysql.jdbc.Driver");

然后再次运行你的代码试试看吧!如果还有问题,请确保你的数据库连接URL、用户名和密码正确,并且数据库已经启动。如果仍然无法连接数据库,还可以检查一下是否防火墙或者网络设置导致无法连接。希望能够帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

mumei2018 发表于 2023-12-15 06:15:03

FishC 发表于 2023-12-15 06:13
在代码中,找到以下这行代码:

Class.forName("com.mysql.jdbc.Dirver");

还是不行

出现如下报错

C:\jdk-21.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.2.5\lib\idea_rt.jar=64251:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.2.5\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\mumei\IdeaProjects\jdbc\out\production\jdbc_demo com.itheima.jdbc.JDBCDemo
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:421)
        at java.base/java.lang.Class.forName(Class.java:412)
        at com.itheima.jdbc.JDBCDemo.main(JDBCDemo.java:10)

FishC 发表于 2023-12-15 06:15:17

mumei2018 发表于 2023-12-15 06:15
还是不行

出现如下报错

C:\jdk-21.0.1\bin\jav ...

从报错信息来看,出现了ClassNotFoundException异常,即找不到com.mysql.jdbc.Driver这个类。这通常是因为缺少MySQL的JDBC驱动jar包导致的。可以尝试以下步骤来解决这个问题:

1. 确保你已经下载了MySQL的JDBC驱动jar包。你可以从MySQL官方网站或者Maven仓库中获取。
2. 将下载好的驱动jar包放置在项目的classpath下。可以将该jar包直接拷贝到你的项目目录下,或者使用构建工具如Maven或Gradle来管理依赖。
3. 在你的代码中添加引入驱动包的代码。在main方法之前添加以下代码:

try {
    Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}

4. 确保你的类路径设置正确。检查一下IDEA的配置,确保你的项目及其依赖正确地包含在类路径中。

如果你仍然无法解决问题,可以尝试重启IDEA或者重新构建项目并清理一下构建缓存。希望这些步骤能够帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

mumei2018 发表于 2023-12-15 06:23:47

FishC 发表于 2023-12-15 06:15
从报错信息来看,出现了ClassNotFoundException异常,即找不到com.mysql.jdbc.Driver这个类。这通常是因 ...

jar包已经成功导入 但依旧无法连接MySQL 报错信息如下

C:\jdk-21.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.2.5\lib\idea_rt.jar=64372:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.2.5\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\mumei\IdeaProjects\jdbc\out\production\jdbc_demo;C:\Users\mumei\IdeaProjects\jdbc\jdbc_demo\lib\mysql-connector-j-8.2.0.jar;D:\A1\java资料\mysql-connector-j-8.2.0\mysql-connector-j-8.2.0.jar com.itheima.jdbc.JDBCDemo
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.cj.Driver
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:421)
        at java.base/java.lang.Class.forName(Class.java:412)
        at com.itheima.jdbc.JDBCDemo.main(JDBCDemo.java:12)

Process finished with exit code 1

FishC 发表于 2023-12-15 06:23:59

mumei2018 发表于 2023-12-15 06:23
jar包已经成功导入 但依旧无法连接MySQL 报错信息如下 ...

根据报错信息来看,仍然是ClassNotFoundException异常,说明仍然找不到com.mysql.jdbc.cj.Driver这个类。这可能是因为你使用的MySQL版本较新,而驱动类的名称已经发生了变化。

在MySQL的8.0版本中,驱动类的名称已经改为com.mysql.cj.jdbc.Driver。所以你需要将代码中的驱动类名称修改为com.mysql.cj.jdbc.Driver,修改后的代码如下所示:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCDemo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
      Class.forName("com.mysql.cj.jdbc.Driver");
      String url = "jdbc:mysql://127.0.0.1:3306/db1";
      String username = "root";
      String password = "root";
      Connection conn = DriverManager.getConnection(url, username, password);
      String sql = "update account set money = 2000 where id = 1";
      Statement stmt = conn.createStatement();
      int count = stmt.executeUpdate(sql);
      System.out.println(count);
      stmt.close();
      conn.close();
    }
}

请确保你的MySQL版本和驱动版本匹配,并且将驱动jar包导入到项目的classpath中。如果还有问题,请再次检查配置和依赖,并确保数据库已经启动。希望这次能够解决你的问题!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

mumei2018 发表于 2023-12-15 06:25:41

FishC 发表于 2023-12-15 06:23
根据报错信息来看,仍然是ClassNotFoundException异常,说明仍然找不到com.mysql.jdbc.cj.Driver这个类。 ...

还是不行 这次的报错信息如下

C:\jdk-21.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.2.5\lib\idea_rt.jar=64388:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.2.5\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\mumei\IdeaProjects\jdbc\out\production\jdbc_demo;C:\Users\mumei\IdeaProjects\jdbc\jdbc_demo\lib\mysql-connector-j-8.2.0.jar;D:\A1\java资料\mysql-connector-j-8.2.0\mysql-connector-j-8.2.0.jar com.itheima.jdbc.JDBCDemo
错误: 找不到或无法加载主类 com.itheima.jdbc.JDBCDemo
原因: java.lang.ClassNotFoundException: com.itheima.jdbc.JDBCDemo

Process finished with exit code 1

FishC 发表于 2023-12-15 06:25:57

mumei2018 发表于 2023-12-15 06:25
还是不行 这次的报错信息如下

C:\jdk-21.0.1\bin\j ...

根据新的报错信息来看,问题出在无法找到或加载主类com.itheima.jdbc.JDBCDemo。这可能是因为项目的运行配置不正确导致的。你可以尝试以下解决方法:

1. 确保你的项目结构正确,包名和类名没有错误。
2. 检查你的项目设置,确保应用程序的启动类是com.itheima.jdbc.JDBCDemo。
3. 确保你的IDE(如IntelliJ IDEA)已经正确设置了项目的classpath,包括所需的jar包。
4. 尝试重新编译和构建项目,确保所有代码和依赖项都被正确处理。

如果还是无法解决问题,请尝试创建一个全新的项目,按照以下步骤操作:

1. 创建一个新的Java项目。
2. 导入所需的mysql-connector-java依赖,确保它在classpath中。
3. 创建com.itheima.jdbc包,并在该包中创建JDBCDemo类。
4. 将你之前尝试过的代码复制到JDBCDemo类中。
5. 运行该类,看看能否成功连接数据库。

如果上述步骤仍然无法解决问题,请再次确认你的MySQL驱动版本和数据库配置是否正确,并且确保你的数据库已经正确启动。另外,也可能是由于操作系统或网络问题导致无法连接到数据库。希望这些方法能够帮助你解决问题!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 在学JDBC 但无法链接数据库 请问是怎么回事呢?