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 ...
随机推荐
- 下载好的vue项目如何在自己电脑环境上运行,步骤!!
本文链接:https://blog.csdn.net/qq_39309900/article/details/84837659首先第一步,需要安装node.js 下载地址:https://nodejs ...
- 浅入深出Vue:文章列表
终于到我们小项目的最后一个功能了,那就是列表页展示! 新建组件 先来新建组件 List.vue: <template> <div></div> </templ ...
- python+Appium自动化:id元素定位
元素定位 与web自动化一样,app自动化元素定位也是非常重要的一环,,appium也是提供了很多元素定位的方法,比如:id.name.class.层级定位等等. 元素定位方式 id name cla ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(26)|实战3:Http服务器(多线程版本)]
[易学易懂系列|rustlang语言|零基础|快速入门|(26)|实战3:Http服务器(多线程版本)] 项目实战 实战3:Http服务器 我们今天来进一步开发我们的Http服务器,用多线程实现. 我 ...
- Jmeter的安装配置
最近我在学习软件测试,然鹅学习最大的成效就是实践,这不刚看完视频之后就开始自己动手了... 首先要下载软件--JMETER: 1).在输入框中输入jmeter,然后找到Apache Jmeter 官 ...
- 帝都之行5day:还是工作上的事
前两天开始面试找工作,周一整好简历,学历不行也没办法,但还是如实写了,自己看了一下,觉得还凑合,毕竟还是有几年经验的,就开始投了 选了十来个智联推荐的企业,然后把简历设为公开,开始等消息吧…… 投递成 ...
- Mybatis 向oracle批量插入与更新数据
插入 <insert id="batchSave" parameterType="java.util.List"> INSERT INTO T_UP ...
- PHP基础之搭建WAMP环境
访问 http://www.wampserver.com/en/ 点击 点击 点击 由于WAMP需要 Microsoft Visual C++运行库支持,请先到 这里 下载VC++2012运行库.官方 ...
- 怎么理解vue中$listeners属性?
首先,$listeners是什么? 假设有父组件Parent和子组件Child // Parent <template> ... <child v-on:event-one=&quo ...
- struts2数据类型转换DefaultTypeConverter
转https://www.cnblogs.com/IT-1994/p/5998458.html 一.前言 笔者一直觉得,学习一个知识点,你首先要明白,这东西是什么?有什么用?这样你才能了解.好了,不说 ...