Rol*_*all 28 java jdbc resultset
我有一个与此方法相关的问题:st.execute(sql);其中st显然是一个Statement对象.直接来自这个 oracle java教程:
execute:如果查询返回的第一个对象是ResultSet对象,则返回true.如果查询可以返回一个或多个ResultSet对象,请使用此方法.通过重复调用Statement.getResutSet来检索从查询返回的ResultSet对象.
" 一个或多个ResultSet对象 " 是什么意思?一旦得到一个数组,ResultSet怎么可能管理它们?鉴于st.executeQuery(sql)而且st.executeUpdate(sql)非常清楚.它(至少对我来说)的目的不是st.execute(sql)返回一个int,就像它更新了一个表一样.
提前致谢
Ste*_*n C 12
"一个或多个ResultSet对象"是什么意思?
该execute方法的javadoc 说:
" 执行给定的SQL语句,可能会返回多个结果.在某些(非常见)情况下,单个SQL语句可能会返回多个结果集和/或更新计数.通常,您可以忽略此操作,除非您(1)执行存储过程您知道可能会返回多个结果或(2)您正在动态执行未知的SQL字符串. "
这几乎解释了它.有时查询可以提供多个查询ResultSet.
如果是这样,一旦得到一个ResultSet数组怎么可能管理它们?
我不确定你的意思,但是:
它不是(至少对我而言)st.execute(sql)的目标,它也可以返回一个int,好像它已经更新了一个表.
execute如果您不知道它是查询,更新(某种类型)......还是可能提供多个结果集的其他内容,则一种用法是执行SQL语句.它的推广executeQuery()和executeUpdate()...
小智 5
execute() :用于所有类型的 SQL 语句的方法,即返回布尔值 TRUE 或 FALSE。如果该方法返回 TRUE,则返回 ResultSet 对象,FALSE 返回 int 值。
executeUpdate() :此方法用于执行 DML 语句(INSERT、UPDATE 和 DELETE),该语句返回 int 值,受影响行的计数。
executeQuery() :此方法用于使用 SELECT 查询从数据库中检索数据。此方法返回根据查询返回数据的 ResultSet 对象。
| 归档时间: |
|
| 查看次数: |
28710 次 |
| 最近记录: |