当前位置: 首页 > 面试题库 >

Statement.execute(sql)与executeUpdate(sql)和executeQuery(sql)

严承允
2023-03-14
问题内容

我对此方法有一个疑问:st.execute(sql);st显然是一个Statement对象。直接从这个甲骨文的Java教程:

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

一个或多个ResultSet对象
是什么意思?一旦获得一系列阵列,如何管理它们ResultSet?而st.executeQuery(sql)st.executeUpdate(sql)非常清楚。它的目的(至少对我而言)st.execute(sql)也可以返回一个int,就好像它已经更新了一个表一样。

提前致谢


问题答案:

“一个或多个ResultSet对象”是什么意思?

execute方法的javadoc 这样说:


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


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

如果是这样,一旦获得ResultSet数组,如何管理它们?

我不确定您的意思,但:

  • 您不能将它们作为数组获取:您必须一次获取一个,并且
  • 您可以将ResultSets放入数组中…

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

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



 类似资料:
  • 问题内容: 当SQL查询的结果为零行>时,将返回什么?如果它返回一个对象,我们将如何检测到SQL查询未返回任何内容。 假定SQL查询为语句。 问题答案: 您是否检查了ResultSet的下一个方法。最初,ResultSet的光标指向第一行之前,对next()的第一次调用返回false表示ResultSet中没有数据。

  • 本教程的重点是遵循敏捷方法,减少步骤数量并实施更有用的工具。 要理解这一点,了解SQL和NoSQL数据库之间的区别非常重要。 大多数用户都了解SQL数据库,并且对MySQL,Oracle或其他SQL数据库有很好的了解。 在过去的几年中,NoSQL数据库被广泛采用来解决各种业务问题和项目需求。 下表显示了SQL和NoSQL数据库之间的区别 - SQL NoSQL的 SQL数据库主要称为关系数据库管理

  • 由于许多潜在的Pandas用户对SQL有一定的了解,因此本页面旨在提供一些如何使用pandas执行各种SQL操作的示例。 import pandas as pd url = 'https://raw.github.com/pandasdev/ pandas/master/pandas/tests/data/tips.csv' tips=pd.read_csv(url) print tips.hea

  • 问题内容: 我有以下内容: 创建DB并使用他的前两个 方法工作正常。当运行到该行时,它将引发异常- 问题答案: 这应该在您的情况下有效: 原因:每次执行方法调用时,语句只能执行一个SQL语句。 如果要同时执行两个或多个语句,则可以使用Batch-Jobs来执行。 喜欢:

  • 问题内容: 我有以下内容: 创建DB并使用他的前两个 方法工作正常。当到达行中时,它将引发异常- 问题答案: 这应该在您的情况下有效: 原因:每次调用execute方法时,语句只能执行一个SQL语句。 如果要同时执行两个或多个语句,则可以使用Batch-Jobs来执行。 喜欢:

  • 1. 前言 本小节,我们将一起学习 MyBatis resultMap 和 sql。 在前面的小节中,我们了解到 MyBatis 可以自动帮助我们映射数据库数据和 Java 对象,其实这是 MyBatis 在幕后帮我们创建了 resultMap 对象;虽然 MyBatis 可以自动帮助我们做数据映射,但是对于复杂的对象,我们就必须自定义 resultMap 了。 而在书写 SQL 时,势必会有一些