SQLException“准备好的 SQL 语句不是查询”是什么意思?

问题描述 投票:0回答:1

我正在使用 JDBC 来处理 Apache Iceberg 表。我创建了一个 java.sql.PreparedStatement 对象,其内容类似于

create table if not exists db.test as ( ... )
。我调用
statement.executeQuery()
并收到 SQLException 并显示消息“准备好的 SQL 语句不是查询”。我做错了什么?

java sql jdbc
1个回答
0
投票

当我想要

executeQuery
时,我正在使用
executeUpdate

executeQuery
适用于 SELECT 等查询,而
executeUpdate
适用于 CREATE、DELETE、UPDATE 和 INSERT 等查询。来自文档的更多信息:

如果查询仅返回一个 ResultSet(例如 SELECT SQL 语句),则为executeQuery;如果查询不返回 ResultSet(例如 UPDATE SQL 语句),则为executeUpdate;如果查询可能返回多个 ResultSet 对象,则为execute。

https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html

© www.soinside.com 2019 - 2024. All rights reserved.