上善若水含洪八埏 2024-06-06 09:31 采纳率: 33.3%
浏览 3

基础问题:数据库无法调用报错

在使用数据库的时候报错:java.sql.SQLSyntaxErrorException: Unknown database 'studentmanage'at MySQLTest.test.main(test.java:47)和Unknown database 'studentmanage'的错误


package MySQLTest;

import java.sql.*;

/**
 * @program: JavaFXStudent
 * @ClassName test
 * @description(类信息): 测试类
 * @author: honor
 * @create: 2024-06-06 00:08
 * @Version 1.0
 **/
public class test {
    public static void main(String[] args) {
        //用户信息和url
        String url = "jdbc:mysql://localhost:3306/studentmanage?serverTimezone=GMT%2B8";
        String username = "root";//数据库用户名
        String password = "123456";//数据库密码


        try {//获取数据库链接
            Connection connection = DriverManager.getConnection(url, username, password);
            //操作数据库
            Statement statement = connection.createStatement();//获取操作数据库对象
            String sql = "select * from studentuser";
            ResultSet resultSet = statement.executeQuery(sql);//执行sql获取结果集

            while(resultSet.next()){//遍历结果集取出数据
                String StudentID = resultSet.getString("StudentID");
                String name = resultSet.getString("name");
                String sex = resultSet.getString("sex");
                String age = resultSet.getString("age");
                String StudentClass = resultSet.getString("StudentClass");
                //输出数据
                System.out.println("学号:"+StudentID);
                System.out.println("姓名:"+name);
                System.out.println("性别:"+sex);
                System.out.println("年龄:"+age);
                System.out.println("班级:"+StudentClass);
            }
            //关闭结果集、数据库操作对象、数据库连接
            resultSet.close();
            statement.close();
            connection.close();

        } catch (SQLException e) {
            throw new RuntimeException(e);
        }

    }

}

这是报错图

img

这个是数据库(数据库使用的是utf8mb3字符集)

img

这个是SQL数据库版本(8.0.37)

img

这个是使用库SQL使用的是8.4.0jar驱动

img

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-06 09:31
    关注

    引自免费微信小程序:皆我百晓生

    根据您提供的信息,报错显示为Unknown database 'studentmanage',这通常意味着您的应用程序试图连接到名为 studentmanage 的数据库,但MySQL服务器并未找到这个数据库。

    要解决这个问题,请按照以下步骤进行操作:

    1. 确保数据库名正确无误。
    2. 检查MySQL服务器上是否存在名为 studentmanage 的数据库。
    3. 如果不存在,创建一个名为 studentmanage 的数据库。

    首先,确保你的数据库URL中的数据库名称拼写正确且大小写匹配。MySQL对数据库名是区分大小写的。如果数据库名称不正确,你需要更改它。这里是修改后的代码片段:

    String url = "jdbc:mysql://localhost:3306/studentmanage?serverTimezone=GMT%2B8"; // 假设数据库名就是 'studentmanage'
    

    接下来,检查MySQL服务器上是否已经存在名为 studentmanage 的数据库。您可以使用MySQL命令行客户端或图形化工具(如phpMyAdmin,Navicat,MySQL Workbench等)来执行此操作。

    如果您没有这样的工具,可以尝试在命令行中运行以下命令:

    mysql -u root -p
    

    然后输入密码,进入MySQL提示符后,执行以下命令来查看所有数据库:

    SHOW DATABASES;
    

    如果列表中没有 studentmanage,则需要创建一个新的数据库。在MySQL提示符下,执行以下命令:

    CREATE DATABASE studentmanage CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    

    这里我们使用了 utf8mb4 字符集,因为它是现代应用的标准选择,包括支持表情符号和其他Unicode字符。

    完成上述步骤后,再次运行您的Java程序,应该就能成功连接到数据库并执行查询了。如果仍然出现问题,请检查您的JDBC驱动版本与MySQL服务器版本兼容性,确保使用的jar包(例如 mysql-connector-j-8.4.0.jar)与MySQL 8.0.37版本兼容。如果不兼容,可能需要更新或降级JDBC驱动。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月6日

悬赏问题

  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵