Mysql存储过程——多结果集返回与java获取
delimiter $$
CREATE PROCEDURE demoSp(IN inputParam VARCHAR(255), INOUTinOutParam
varchar(255))
BEGIN
SELECT CONCAT('zyxw---', inputParam)into inOutParam;
END $$
delimiter ;
java代码:
Connection conn = null;
CallableStatement st = null; //list
ResultSet rs = null;
try{
conn = DBManager.getConnection();
st = conn.prepareCall("{call demoSp(?,?)}");
st.setString(1, "aaaaaaaaaaaa");
st.registerOutParameter(2, Types.VARCHAR);
st.execute();
System.out.println(st.getString(2));
}catch (Exception e) {
throw new RuntimeException(e);
}finally{
DBManager.release(conn, st, rs);
}
//第二种情况
存储过程经常需要返回多个结果集。 Mysql 中直接用 select 即可返回结果集。而 oracle 则需要使用游标来返回结 果集。这一点 Mysql 相对比较方便,如下代码即可实现输出两个结果集:
CREATEPROCEDUREtest_proc_multi_select()
BEGIN
select*fromtestproc;
select*fromtestprocwhereid=1;
END;
Java 代码
package com.hbsi.test;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import com.hbsi.utils.DBManager;
public class DemoMutilresult {
/**
* @param args
*/
publicstatic void main(String[] args) {
//TODO Auto-generated method stub
Connectioncon=null;
//用于执行sql存储过程的借口对象
CallableStatementst=null;
ResultSetrs=null;
try{
con=DBManager.getConnection();
//java中利用循环,即可获取结果际数据
Stringsql="{call test_mutil_proc()}";
st=con.prepareCall(sql);
//
booleanflag=st.execute();
inti=0;
while(flag){
System.out.println("第几个结果集"+(++i));
rs=st.getResultSet();
while(rs.next()){
System.out.println(rs.getInt(1));
}
flag=st.getMoreResults();
}
}catch (SQLException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBManager.release(con,st, rs);
}
}
}
分享到:
相关推荐
JAVA8时间插入mysql少了8小时的解决办法(csdn)————程序
Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。 面向对象 Java是一个面向对象的语言。对程序员来说,这意味着要注意其中的数据和...
├─面试必问-架构杀手锏——java混乱的日志体系 │ java混亂日志体系源码揭秘.mp4 │ ├─面试必问-深入微服务之SpringBoot&Docker1 │ 深入微服务之SpringBoot&Docker.mp4 │ └─面试必问-聊聊哈希算法与HashMap
模块3:SQL接口,接受SQL命令后,调用SQL接口,执行并返回相应的结果集。 模块4:SQL解析引擎,SQL语句需要进行解析。将SQL语句解析成为抽象语法树。从中也要识别SQL语句是否合法。 模块5:优化引擎,抽象成语法树后...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
管理员主要是为了安全有效地存储和管理各类信息,还可以对系统进行管理与更新维护等操作,并且对后台有相应的操作权限 ———————————— 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库...
06 MySQL技术内幕 InnoDB存储引擎 第2版.pdf 07 Practical.API.Design.Confessions.of.a.Java.Framework.Architect.pdf 08 陈皓-Cloud Native 云化架构.pdf 09 从Paxos到Zookeeper 分布式一致性原理与实践.pdf 10 马...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Javaweb应用图片文件上传并预览,Tomcat服务器存储至磁盘,数据库mysql存储其图片路径
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,本文主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式。MyISAM索引实现MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的...
全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...
16.4 Java与各种数据库连接 16.5 本章习题 第17章 Java Web应用——JSP 17.1 JSP技术概述 17.2 JSP运行环境搭建 17.2.1 Tomcat下载与安装 17.2.2 Tomcat的环境变量配置 17.3 基本语法 17.3.1 HTML注释 ...
Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
MySQL是采用Java技术来实现CGI功能的一种技术,能够像CGI一样动态地扩展Web服务器的功能,并采用请求——响应模式提供Web服务 私人牙科诊所病例信息系统(HOSPITAL INFORMATION SYSTEM)简称HIS,是私人牙科诊所...