`
123003473
  • 浏览: 1064587 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

<转>Java 执行存储过程--返回多个结果集

    博客分类:
  • java
 
阅读更多
在JAVA中执行存储过程用

 

CallableStatement callsm= con.prepareCall(strsql);

 

callsm.execute(); 

 

在执行存储过程后,要得到结果集callsm.getResultSet

 

如果有多个结果集呢?


package com.yangtianb.dao;  

  

import java.sql.CallableStatement;  

import java.sql.Connection;  

import java.sql.ResultSet;  

import java.sql.SQLException;  

  

import com.yangtianb.connctionMannege.ConnectionManager;  

  

public class ProcDao {  

    public void proctest(){  

        Connection con = ConnectionManager.getConnection();  

          

          

        CallableStatement callsm=null;  

        try {  

            String strsql = "{call PROC_DARWEXPERT(?,?,?)}";//sql语句  

            callsm = con.prepareCall(strsql);  

            //参数设置  

            callsm.setString(1, "res");  

            callsm.setString(2, "me");  

            callsm.setString(3, "111");  

            //执行  

            callsm.execute();     

            //获取结果集  

            ResultSet rs = callsm.getResultSet();  

            while(rs.next()){  

                System.out.println(rs.getString(1)+"a");  

            }  

            //判断是否有下一个游标  

            if(callsm.getMoreResults()){//这个判断会自动指向下一个游标  

                 ResultSet rs1 = callsm.getResultSet();//得到第二个结果集  

                 while(rs1.next()){//处理第二个结果集  

                    System.out.println(rs1.getShort(1));  

                 }  

                 try{//关闭rs1  

                      if(rs1 != null){  

                          rs1.close();  

                      }  

                      if(rs!=null){  

                          rs.close();  

                      }  

             }catch(SQLException e){  

                 e.printStackTrace();  

             }  

          }  

        } catch (SQLException e) {  

            // TODO Auto-generated catch block  

            e.printStackTrace();  

        }finally{  

              

            try {  

                callsm.close();  

            } catch (SQLException e) {  

                // TODO Auto-generated catch block  

                e.printStackTrace();  

            }  

            ConnectionManager.closeConnection(con);  

        }  

    }  

}  


【转载地址】http://hi.baidu.com/jingminglang/item/2460e471d198c348ef1e5391
分享到:
评论

相关推荐

    impala-uuid创建教程

    在POM文件中,我们可以看到包含了多个HBase和相关组件的依赖项。这些依赖项主要用于支持MapReduce、HBase、Hive以及UDF的开发。下面列出了POM文件中的部分关键配置: ```xml &lt;project xmlns=...

    iBATIS学习笔记

    - `&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;`: 多条件选择。 - `&lt;foreach&gt;`: 遍历集合。 #### 高级查询技术 - **映射继承**: - 实现子类继承父类的映射规则。 - **XML返回类型**: - 定义查询结果为XML格式。 - **...

    SSM框架搭建(IDEA+Maven)

    这个框架组合提供了全面的企业级应用解决方案,涵盖了依赖注入、数据访问、业务逻辑处理、前端展示等多个层面。下面我们将详细讲解如何在IntelliJ IDEA(IDEA)中结合Maven来搭建SSM框架,并进行简单的应用。 首先...

    java 调用存储过程 实例

    此外,对于更复杂的情况,比如存储过程返回多结果集,可能需要使用`ResultSetMetaData`来获取列信息,然后遍历结果集。 参考上述步骤,你可以根据自己的需求修改并实现调用Oracle存储过程的Java代码。确保正确配置...

    Oracle存储过程返回结果集

    当需要从存储过程中返回多个结果时,通常会使用结果集。本篇将深入探讨如何在Oracle存储过程中创建并返回一个结果集,并结合Java代码展示如何在应用程序中使用这个结果集。 首先,我们需要理解`OUT`参数的概念。在...

    初级java note笔记demo文档

    - **关键组件**:业务层通常由多个服务类组成,每个服务类负责一部分特定的业务逻辑。 **3. 数据持久层(Data Access Layer)** - **定义**:负责数据的存储和读取,是程序与数据库之间的桥梁。 - **技术栈**:...

    SpringBoot整合Mybatis笔记

    - **Mybatis**:是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。 #### SpringBoot特点 1. **简化XML配置**:除了Mybatis外,...

    JSTL详细标签库介绍

    发生异常时,异常周围信息(抛出对象本身类型)-------------异常处理程序&lt;BR&gt;&lt;BR&gt;12.5一个异常处理的简单实例:除数为0&lt;BR&gt;&lt;BR&gt;需求:使用一个小应用程序,完成两数相除的计算&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;...

    跨域、cors-filter-1.7、java-property-utils-1.9

    在Web开发中,跨域(Cross-Origin Resource Sharing, CORS)是一个关键的概念,它涉及到浏览器的安全策略,限制了JavaScript从一个源获取资源到另...正确实施后,可以确保多个源的网页能够安全地与我们的服务进行交互。

    Spring Boot 开源电子书1

    Map&lt;String, String&gt; filterChainDefinitionMap = new LinkedHashMap&lt;&gt;(); filterChainDefinitionMap.put("/logout", "logout"); filterChainDefinitionMap.put("/login", "anon"); filterChainDefinitionMap....

    Oracle 返回多个结果集

    在Oracle数据库中,返回多个结果集是一个常见的需求,特别是在处理复杂的查询或存储过程时。一个结果集通常对应于SQL查询的执行结果,但有时我们可能需要在一个操作中获取并处理多个独立的结果集。这就涉及到了...

    JAVA调用存储过程

    - 对于返回多个结果集的情况,需要循环调用`getMoreResults`和`getResultSet`来处理所有结果集。 综上所述,本文详细介绍了如何在Java中调用SQL Server存储过程,包括无结果集返回的调用、返回单个SQL类型数据的...

    mybatis 入门文档

    - `&lt;typeHandler&gt;`:定义如何将预处理语句的结果集转换为 Java 数据类型。 - `&lt;plugins&gt;`:插件是为了扩展 MyBatis 的行为,如分页插件。 - `&lt;environments&gt;`:环境配置,可以指定不同的数据源或事务管理器。 ...

    Ecplise下用maven建drools web项目

    在Eclipse中创建一个基于Maven的Drools Web项目涉及多个步骤,下面将详细解释这些步骤以及相关知识点。 首先,Maven是一个项目管理和综合工具,它管理项目的构建、报告和文档,通过定义一个标准的项目对象模型(POM...

    上传文件的jar包

    5. **临时存储文件**:通常,上传的文件会被暂时存储在一个临时目录中,以防万一在处理过程中出现问题,可以避免占用用户硬盘空间。你可以使用Apache Commons IO的`FileUtils`类来方便地操作文件: ```java File ...

    java调用oracle存储过程并得到结果集

    Oracle存储过程可以返回多个结果集,因此我们需要使用`CallableStatement`而不是`PreparedStatement`。调用存储过程的语法是`{call procedure_name(参数列表)}`。例如: ```java CallableStatement cs = connection....

    java调用存储过程返回数组

    在Java编程中,调用数据库的存储过程并处理返回结果是常见的任务,特别是在需要执行复杂数据库操作或者封装业务逻辑时。本文将详细探讨如何在Java中调用存储过程,并处理返回的数组类型数据。 首先,存储过程是一种...

    7.7初始mybatis个人笔记.docx

    关于【部分内容】,这里包含了多个MyBatis的相关知识点: 1. **模糊查询**: 使用`@Param`注解传递参数,并在SQL中使用`CONCAT`函数结合`%`进行模糊匹配,例如: ```xml &lt;select id="queryByName" ...

    Java EE企业级应用开发教程(SSM)(第2版) 课后习题及答案

    * MyBatis 是一个支持普通 SQL 查询、存储过程以及高级映射的持久层框架,它消除了几乎所有的 JDBC 代码和参数的手动设置以及对结果集的检索。 * MyBatis 的工作原理包括读取 MyBatis 配置文件、加载映射文件、构建...

Global site tag (gtag.js) - Google Analytics