目录

问题点1.注册驱动

问题点2. 获取链接

获取连接这里容易出现的问题:

1. 数据库报错。如下图

2.密码错误:如下图

3. 路由报错。

代码:从注册驱动到释放资源。


常见的 JDBC 报错

问题点1.注册驱动

在MySQL 8.0 之后,注册驱动和连接数据库发生了变化。如果你的MySQL 是 8.0 版本之后的,需要更新驱动才可以,下面是最新的驱动,可直接复制替换自己原来的驱动代码。

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

问题点2. 获取链接

顾名思义就是连接数据库。通过DriverManager.getConnection(url,user,password);获得数据库连接对象 

URL:jdbc:mysql://localhost:3306/database

()

user:root

(用户名,root 是 MySQL 默认的用户名)

password:123

(密码:如果你在安装 MySQL  的时候,更改了密码,在这里一定写上你更改过后的密码,不然连接不上数据库,还报错找不到原因)

获取连接这里容易出现的问题:

1. 数据库报错。如下图

问题发生原因:mysql 里面没有这个数据库,或 这个数据库不在这个用户名下。

解决办法:换一个数据库,或重新创建一个数据库,更或者找到它在哪个用户名下,更改用户名。

java数据库加载驱动 jdbc加载数据库驱动失败_bc

2.密码错误:如下图

解决办法:更改正确的密码。要实在忘记正确的密码,可以“使用管理员权限打开命令行,进入 mysql 界面更改密码” 

java数据库加载驱动 jdbc加载数据库驱动失败_java数据库加载驱动_02

3. 路由报错。

原因是使用了下面这个路由,但是这个路由在另一个代码里面也勉强能用,同样报错,主要是你想要的结果出来了。如下图

String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode = true & characterEncoding = utf8";

java数据库加载驱动 jdbc加载数据库驱动失败_数据库_03

 划红线报错的意思是 java.sql.SQLSyntaxErrorException: Table 'jdbc. sql. sqlsyntaxerrorexception异常。账户不存在。

大体就是你所使用的账户在数据库根本就没有,或者你使用的用户名错了。

然后,我换了一个路由就可以了。如果觉得逻辑不太清晰的,可以到文章后面查看代码,放上的是全部的代码,从注册驱动到释放资源。

String url="jdbc:mysql://127.0.0.1:3306 /biao";

代码:从注册驱动到释放资源。

// 1.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        // 2. 获取链接
        String url="jdbc:mysql://127.0.0.1:3306 /biao";
        String username="root";
        String password="****";//(登录mysql的密码)
        Connection conn = DriverManager.getConnection(url, username, password);
        //3. 定义 sql
        String mysql = "update account set money = 2000 where id = 1";

       //4. 获取执行 SQL 的对象 Sratement
        Statement stmt = conn.createStatement();

       // 5。 执行 sql
         int count = stmt.executeUpdate(mysql);//受影响的行数

        //6. 处理结果
        System.out.println(count);

        //7。 释放资源
        stmt.close();
        conn.close();

正确输出:

java数据库加载驱动 jdbc加载数据库驱动失败_java数据库加载驱动_04