我正在使用 JDBC 来处理 Apache Iceberg 表。我创建了一个 java.sql.PreparedStatement 对象,其内容类似于
create table if not exists db.test as ( ... )
。我调用 statement.executeQuery()
并收到 SQLException 并显示消息“准备好的 SQL 语句不是查询”。我做错了什么?
当我想要
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