【发布时间】:2012-03-16 06:37:35
【问题描述】:
我正在尝试使用 JDBC(如 SQL 中的存储过程)在 java 中实现一项任务。 在 SQL 中,当我们写游标时,首先执行选择查询,然后获取记录我们执行一些操作。
我可能在 Hive 中触发了一个选择查询。
sql="SELECT a,c,b FROM tbl_name";
res=stmt.executeQuery(); -----------> CONTAINS 30 RECORDS
while(res.next())
{
sql="INSERT INTO table .....";
rs1=stmt.executeQuery();
sql="SELECT d,e,f FROM table .....";
rs1=stmt.executeQuery();
like wise many queries are there.....
.
.
.
..
}
由于我的选择查询包含 30 条记录,但是当我执行它时,我的 while(res.next()) 只执行一次。
但是我只是尝试显示字段来检查它是否正在获取而不是查询 然后它工作正常.. (while 循环仅包含 System.out.println 语句)
sql="SELECT * FROM tbl_name";
res=stmt.executeQuery(sql);
while(res.next())
{
S.O.P.("fields : "+res.getString(0));
}
(我认为当遍历结果集并且如果在查询之间存在则查询得到执行但同时循环也得到执行,并且在一段时间后查询执行通过结果集的那个while循环完成完成,因此它会执行一次。我不确定。)
为什么会发生我不明白。是不是我做错了什么?
【问题讨论】: