怎样得到mysql存储过程多条语句的结果集

如题所述

第1个回答  2015-02-04
存储过程经常需要返回多个结果集。 Mysql 中直接用 select 即可返回结果集。而 oracle 则需要使用游标来返回结 果 集。这一点 Mysql 相对比较方便,如下代码即可实现输出两个结果集:
CREATE PROCEDURE test_proc_multi_select()
BEGIN
select * from testproc;
select * from testproc where id=1;
END;
java 中利用循环,即可获取结果集数据:

con = MConnection.getConn();
String sql = "{call test_proc_multi_select()}";
cs = con.prepareCall(sql);
boolean hadResults = cs.execute();
int i = 0;
while (hadResults) {
System.out.println("result No:----" + (++i));
ResultSet rs = cs.getResultSet();
while (rs != null && rs.next()) {
int id1 = rs.getInt(1);
String name1 = rs.getString(2);
System.out.println(id1 + ":" + name1);
}
hadResults = cs.getMoreResults(); // 检查是否存在更多结果集
}本回答被提问者和网友采纳

mybatis调用mysql存储过程(返回参数,单结果集,多结果集)
1. 标注一二三四五处如果存在,则执行成功后返回结果如下 标注一对应结果1 标注二对应结果2 标注三对应结果3 标注四对应结果4 标注五对应结果5 其中结果3返回的是集合。 存在这么多结果,想要取结果3中的集合是不好取的,只有像下图一样只有一个结果才好取出集合。2. 标注一二四...

求助大神 mybatis 使用Mysql 的存储过程 怎么返回多个结果集
如何通过MyBatis获取mysql存储过程返回的不确定个数的多个结果集 如果对select 返回的结果行都需要处理,使用游标。如果只想取得返回多行中的一行,使用limit。

mysql查询同时获得结果总数
不可以,只可以分两次查数据库,就算用存储过程一样也是两条语句

请问mysql存储过程中多个动态sql语句该怎么写,第二个动态语句要用第一...
同样的方法 排列下来,主要是前面的动态语句你最好把执行结果放入到一个表里面 类似insert select的方法 然后把set a:=select s from xx; 这样 你就可以取到上个值啦 然后你再去用就没有问题啦 一步一调试 方便容易找到错误的点

MYSQL 存储过程能返回结果集吗
可以,存储过程只是把你的查询语句形成一个固定的格式,这样你要查询的时候就不用每次都执行查询语句了,sql在执行的时候都会将你的sql语句转换为字节码,然后机器才能运行,存储过程就节省了这一步,已经形成了字节码,所以速度才会快,特别是执行次数比较多的时候,可以节省很多时间 ...

深入MySQL中查看存储过程详情mysql查看存储过程
首先,可以使用show create procedure ‘procedure-name’语句或show procedure status、information_schema.routines表来查看存储过程的创建语法以及存储过程的状态:查看某存储过程的创建语法 show create procedure test_procedure;查看有哪些存储过程以及它们的状态 show procedure status;另一种方法...

mysql使用存储过程将多条(4条以上)SQL使用 union all 合并
) ';\/*右括弧*\/set u_sql=' union all ';\/*加空格、上同*\/OPEN month_cursor;my_loop:loopFETCH month_cursor into t_name;if done then leave my_loop;end if;if s_sql is null thenset @s_sql= CONCAT(sel_sql,t_name,g_sql);\/*第一个SQL*\/elseset @s_sql= CONCAT(...

java如何获得mysql存储过程的返回值
已储存过程储存在数据库中。对已储存过程的调用是 CallableStatement 对象所含的内容。这种调用是用一种换码语法来写的,有两种形式:一种形式带结果参数,另一种形式不带结果参数(有关换码语法的信息,参见第 4 节“语句”)。结果参数是一种输出 (OUT) 参数,是已储存过程的返回值。两种形式都可...

sql 有很多条记录 每次查询200条
增加查询效率,这种分也是很有必要的。这需要写一个存储过程,然后前台提交参数,比如2,存储过程获得参数以后,计算出200-400,然后再从数据库中读出这200条即可,更进一步如果需要总页数和分页数,也可以把总的记录数\/200作为总页数返回。也就是说,你每次查询的结果集仅仅是200条,并不是35670。

mysql 存储过程总结(一)
1、存储过程定义:存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发 人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。2、特点:封装,复用 ...

相似回答