CallableStatement获得存储过程多个结果集
这里使用到的数据库为MySQL
package com.dz.entity;
import java.sql.*;
public class Pro_inoutTest {
public static void main(String[] args) {
insertDataByProcedure();
}
public static void insertDataByProcedure() {
Connection conn = null;
CallableStatement cs = null;
try {
//得到连接
conn = DBUtil.getConnection();
//调用哪个存储过程prepareCall
cs = conn.prepareCall("{call pp3(?, ?)}");
//这里的两个参数为inout(输入输出参)
cs.setString(1,"333");
cs.setString(2,"egy49xa");
//将指定序号位置的 OUT 参数注册为给定的 JDBC 类型。
cs.registerOutParameter(1, Types.VARCHAR);
cs.registerOutParameter(2, Types.VARCHAR);
boolean hasMore = cs.execute();
//取指定位置的值
System.out.println(cs.getObject(1));
System.out.println(cs.getObject(2));
while(true){
//首先判断是否是结果集
if(hasMore){
ResultSet rs = cs.getResultSet();
while(rs.next()){
System.out.println(rs.getObject(1));
}
}else{
int count = cs.getUpdateCount();
if(count == -1){
//当count为-1时则结果集为最后一条数据
System.out.println("最后一条数据");
break;
}
}
hasMore = cs.getMoreResults();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close();
}
}
}
package com.dz.entity;
import java.sql.*;
public class Pro_inoutTest {
public static void main(String[] args) {
insertDataByProcedure();
}
public static void insertDataByProcedure() {
Connection conn = null;
CallableStatement cs = null;
try {
//得到连接
conn = DBUtil.getConnection();
//调用哪个存储过程prepareCall
cs = conn.prepareCall("{call pp3(?, ?)}");
//这里的两个参数为inout(输入输出参)
cs.setString(,"333");
cs.setString(,"egy49xa");
//将指定序号位置的 OUT 参数注册为给定的 JDBC 类型。
cs.registerOutParameter(, Types.VARCHAR);
cs.registerOutParameter(, Types.VARCHAR);
boolean hasMore = cs.execute();
//取指定位置的值
System.out.println(cs.getObject());
System.out.println(cs.getObject());
while(true){
//首先判断是否是结果集
if(hasMore){
ResultSet rs = cs.getResultSet();
while(rs.next()){
System.out.println(rs.getObject());
}
}else{
int count = cs.getUpdateCount();
if(count == -){
//当count为-1时则结果集为最后一条数据
System.out.println("最后一条数据");
break;
}
}
hasMore = cs.getMoreResults();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close();
}
}
}
CallableStatement获得存储过程多个结果集的更多相关文章
- [转]Oracle 调用存储过程并显示结果集 Oracle.DataAccess.Client OracleDbType.RefCursor
本文转自:http://liye9801.blog.163.com/blog/static/6019703200901244448950/ 今天学习了一个Oracle中的存储过程,一开始便被如果返回结 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (14) -----第三章 查询之查询中设置默认值和存储过程返回多结果集
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-6在查询中设置默认值 问题 你有这样一个用例,当查询返回null值时,给相应属性 ...
- 存储过程不返回记录集导致ADO程序出错
HRESULT _hr = get_adoEOF(&_result); IsEOF()函数如下:其中ADOCG::_RecordsetPtr m_pRecordset; BOOL IsEOF( ...
- 使用EntityFramework调用存储过程并获取存储过程返回的结果集
[实习]刚入职,公司要求完成两个任务,任务要求使用存储过程和事务,其中一个问题要获取存储过程的查询结果集.经过多方查找和自己的实践,终于找到了方法.这里记录一下. 看到的这篇文章中给出的例子是查询单个 ...
- myabatis oracle 调用存储过程返回list结果集
Mapper.xml 配置 <resultMap type="emp" id="empMap"> <id property="emp ...
- mybatis/callablestatement调用存储过程mysql connector产生不必要的元数据查询
INFO | jvm 1 | 2016/08/25 15:17:01 | 16-08-25 15:17:01 DEBUG pool-1-thread-371dao.ITaskDao.callProce ...
- db2 存储过程 语法 及结果集查询
第一次用存储过程,关于处理待办的,不知道怎么执行和传参数 给存储过程 ,其实就一句话很简单. @call PRC_MISSIONLIST_QUERY('27020214', '27040000', ' ...
- oracle创建存储过程并返回结果集(附C#调用代码)
使用存储过程中,最常用的莫过于查询数据表,并返回结果集. 在SQL SERVER 中,这类操作最简单,通过简单的select * from xx 即可完成.但是在Oracle中并不支持这种写法,那么我 ...
- CallableStatement执行存储过程
/** * 使用CablleStatement调用存储过程 * @author APPle * */ public class Demo1 { /** * 调用带有输入参数的存储过程 * CALL p ...
随机推荐
- Linux ping route nslookup ifconfig arp traceroute
route -n 查看默认网关 ping -c 包个数 ping -s 包大小 host 目标主机 主机解析 nslookup 目标主机 arp -an 查看arp arp -s IP地 MA ...
- openssh的服务端配置文件
一.因为部分配置长时间不使用就忘了,为了方便查阅,我在这里检点写一些比较有用的ssh配置选项. PortListenAddress ip #监听自己的哪个端口,默认是都监听的,如果指定了I ...
- Flutter入门(三)-底部导航+路由
* StatefulWidget 如果想改变页面中的数据就要用到StatefulWidget,之前自定义组件继承的StatelessWidget是不能动态修改页面数据的 //自定义有状态组件 clas ...
- ESP8266—“ICACHE_FLASH_ATTR”宏
问:ESP8266_NONOS_SDK中ICACHE_FLASH_ATTR宏的用途是什么?我看到它取决于ICACHE_FLASH,但我不知道何时应该定义该符号.什么时候需要包括它?答:对于ESP826 ...
- Ubuntu16.04连接SSH出现 Server responded “Algorithm negotiation failed” 的解决方法
今天安装了Ubuntu16.04虚拟机,与SSH连接时出现了如下问题 解决方法如下: (写在前面:请先确保自己已经给Ubuntu安装了SSH服务.安装方法是在root模式下,终端输入命令apt-g ...
- 解决SpringBootApplication右键没有启动项的问题
转载于 https://blog.csdn.net/weixin_41876599/article/details/82711302 感觉很有用
- Spring 初探(一) IoC 图集
Spring 框架总体结构 IoC 直观 Spring IoC容器 Spring提供两种容器类型: - BeanFactory - ApplicationContext ApplicationCont ...
- java常用数据类型转换
在Java开发过程中经常会涉及到数据类型的转换问题,比如数字型转字符型,字符型转日期型,字符串转数组等等,以及其他类型的强制转换等.经常出现,所以有必要总结一下. 1.如何将字串 String 转换成 ...
- java+根据多个url批量下载文件
1.基本流程 当我们想要下载网站上的某个资源时,我们会获取一个url,它是服务器定位资源的一个描述,下载的过程有如下几步: (1)客户端发起一个url请求,获取连接对象. (2)服务器解析url,并且 ...
- 判断一个ip地址合法性(基础c,不用库函数)
#include <stdio.h> int judge(char *strIp); int main() { ]; ) { scanf("%s", a); == ju ...