Statement.execute(sql)vs executeUpdate(sql)和executeQuery(sql) [英] Statement.execute(sql) vs executeUpdate(sql) and executeQuery(sql)

查看:426
本文介绍了Statement.execute(sql)vs executeUpdate(sql)和executeQuery(sql)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个与此方法相关的问题: st.execute(sql); 其中st显然是Statement对象。
直接来自这个 oracle java教程:

I have a question related to this method: st.execute(sql); where st obviously is a Statement object. Directly from this oracle java tutorial:


execute:如果查询返回的第一个对象是
ResultSet对象,则返回true。如果查询可以返回一个或
个更多ResultSet对象,请使用此方法。通过重复调用Statement.getResutSet来检索从
返回的ResultSet对象。

execute: Returns true if the first object that the query returns is a ResultSet object. Use this method if the query could return one or more ResultSet objects. Retrieve the ResultSet objects returned from the query by repeatedly calling Statement.getResutSet.

的含义是什么一个或多个ResultSet对象 ?一旦得到 ResultSet 的数组,怎么可能管理它们?
st.executeQuery(sql) st.executeUpdate(sql)非常清楚。它不是(至少对我而言) st.execute(sql)的目的,它也可以返回一个int,好像它已经更新了一个表。

What is meant by "one or more ResultSet objects"? How is it possible to manage them once got an array of ResultSet? Whereas st.executeQuery(sql) and st.executeUpdate(sql) are very clear. It's not (at least to me) the aim of st.execute(sql) which can also return an int as if it was updated a table.

提前致谢

推荐答案


他们是什么意思一个或多个ResultSet对象?

What do they mean by "one or more ResultSet objects"?

执行方法的javadoc说这个:

The javadoc for the execute method says this:


执行给定的SQL语句,这可能会返回多个结果。在某些(不常见的)情况下,单个SQL语句可能会返回多个结果集和/或更新计数。通常,您可以忽略这一点,除非您(1)执行您知道可能返回多个结果的存储过程或(2)您正在动态执行未知的SQL字符串。

这几乎可以解释它。有时查询可以提供多个 ResultSet

That pretty much explains it. Sometimes a query can deliver more than one ResultSet.


如果是这样的话怎么回事一旦得到ResultSet数组就可以管理它们吗?

if so how is it possible to manage them once got an array of ResultSet?

我不确定你的意思但是:

I'm not sure what you mean but:


  • 你不能把它们作为一个数组:你必须一次得到一个,并且

  • 你可以放结果集成一个数组......


这不是(至少对我来说)st的目的.execute(sql),它也可以返回一个int,好像它已经更新了一个表。

It's not (at least to me) the aim of st.execute(sql) which can also return an int as if it was updated a table.

一次使用 execute 是执行SQL语句,如果您不知道它是查询,更新(某种类型)......还是可能提供多个结果集的其他内容。它是 executeQuery() executeUpdate() ...

One use of execute is to execute an SQL statement if you don't know if it is a query, an update (of some kind) ... or something else that potentially delivers multiple result sets. It is a generalization of executeQuery() and executeUpdate() ...

这篇关于Statement.execute(sql)vs executeUpdate(sql)和executeQuery(sql)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆