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
相关产品推荐
相关产品推荐

