You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java JDBC调用executeQuery失败求助:首次整合MySQL遇问题

JDBC调用executeQuery失败的问题修复

先直接说你代码里的几个关键问题:

  • 导包完全错误:你导入的是java.beans.Statement,这根本不是JDBC操作要用的类!必须改成导入java.sql.Statement——这是导致createStatement()和executeQuery()报错的核心原因。
  • executeQuery缺参数:你把SQL语句("select * from published_books")注释掉了,executeQuery()必须传入要执行的SQL字符串才能工作。
  • 未处理异常:DriverManager.getConnection()这类JDBC操作会抛出SQLException,要么在main方法声明throws SQLException,要么用try-catch捕获异常。
  • 资源没关闭:Connection、Statement、ResultSet用完后需要关闭,推荐用try-with-resources语法自动管理,避免内存泄漏。

修复后的代码示例:

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

public class Main {
    public static void main(String[] args) throws SQLException {
        // try-with-resources自动关闭资源,不用手动写close()
        try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc-book", "root", "root");
             Statement statement = connection.createStatement();
             ResultSet resultSet = statement.executeQuery("select * from published_books")) {

            // 遍历查询结果,根据你的表结构调整字段名
            while (resultSet.next()) {
                int bookId = resultSet.getInt("id");
                String bookTitle = resultSet.getString("book_title");
                System.out.println("书籍ID:" + bookId + ",书名:" + bookTitle);
            }
        }
    }
}

额外要确认的两点:

  • 项目里已经添加了MySQL JDBC驱动(比如通过Maven/Gradle引入,或者手动添加jar包)
  • MySQL服务正在运行,连接地址、数据库名、账号密码都正确

内容的提问来源于stack exchange,提问作者Francesco Bonaiuti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 03:57:06