精华内容
下载资源
问答
  • Mybatis调用存储过程返回多个结果

    千次阅读 2017-06-15 18:25:27
    数据库用的是SqlServer2008 ...Mybatis调用存储过程返回结果集 配置文件 {call Page_Up_Get_OrderState(#{id,mode=IN,jdbcType=VARCHAR})} 需要注意的地方 statementType=

    数据库用的是SqlServer2008

    图片为数据库执行存储过程返回的数据

    Mybatis调用存储过程返回结果集

    配置文件

      <resultMap type="Integer" id="count">  
        <result column="RecordCount"   jdbcType="INTEGER" javaType="Integer" />   
      </resultMap>  
    
      <resultMap type="OrderForm" id="orders">   
        <result column="OrderId" property="id" jdbcType="VARCHAR" javaType="String"/>  
      </resultMap> 
    
      <select id="getOrders" statementType="CALLABLE" parameterType="Map"  resultMap="count,orders" >
       {call Page_Up_Get_OrderState(#{id,mode=IN,jdbcType=VARCHAR})}
      </select>
    

    需要注意的地方 statementType="CALLABLE" 不能少resultMap="count,orders" 这里返回多个结果集,如果有更多可以继续加

    Dao层的接口

     public List<List<?>>  getOrders(Map<String, Object> map);
    

    Service层调用

       Map<String,Object> map=new HashMap<String, Object>();
            map.put("id", "22333");
       //取得返回的结果集   
       List<List<?>> results = orderDao.getOrders(map);
       //第一条结果集 总数量
       System.out.println(((List<Integer>)results.get(0)).get(0));
       //第二条订单列表
       System.out.println((List<OrderForm>)results.get(1));
    展开全文
  • 存储过程返回多个结果

    千次阅读 2012-07-20 13:54:31
    对于查询试的存储过程,一般会返回一个结果集,这个时候,使用正常的查询操作即可得到结果集,可是,面对下面的一次返回多个结果集的过程,又该如何通过JDBC获取呢?   其实,只需要多加一步操作就可以了。 ...

    对于查询试的存储过程,一般会返回一个结果集,这个时候,使用正常的查询操作即可得到结果集,可是,面对下面的一次返回多个结果集的过程,又该如何通过JDBC获取呢?

     

    其实,只需要多加一步操作就可以了。

    JDBC的PreparedStatement可以返回多个结果集,但是ResultSet一次却只能接受一个结果集,只需要再判断PreparedStatement对象的getMoreResults()是否为真,然后再获取一次结果集,即可得到第二、第三……个结果集。

    代码实现如下(Sybase IQ版本):

     

    ps = conn.prepareStatement(sql);
    ps.getMoreResults();
    rs  = ps.executeQuery();
    
    while(rs.next()){
    	System.out.println(rs.getString(1));
    }
    if(ps.getMoreResults()){
    	rs = ps.getResultSet();
    }
    while(rs.next()){
    	System.out.println(rs.getString(1));
    }
    展开全文
  • mybatis调用存储过程返回多个结果

    千次阅读 2017-07-14 11:39:14
    我使用的是mysql数据库,映射2实体对象:Account ,BankWatermybaits调用的时候需要使用resultMap属性由于mysql数据库支持存储过程使用select返回结果集,所以这里没有写out传入参数 <id column="account_id" pr

    我使用的是mysql数据库,映射2个实体对象:Account ,BankWater

    mybaits调用的时候需要使用resultMap属性

    由于mysql数据库支持存储过程使用select返回结果集,所以这里没有写out传入参数

    <resultMap type="com.kay.entity.Account" id="account">
            <id column="account_id" property="accountId"/>
            <result column="account_name" property="accountName" javaType="java.lang.String" jdbcType="VARCHAR"/> 
            <result column="currency" property="currency" javaType="java.lang.String" jdbcType="VARCHAR"/> 
            <result column="balance" property="balance" javaType="java.math.BigDecimal" jdbcType="DECIMAL"/> 
            <result column="open_date" property="openTime" javaType="java.util.Date" jdbcType="DATE"/> 
            <result column="open_place" property="openPlace" javaType="java.lang.String" jdbcType="VARCHAR"/> 
            <result column="account_state" property="accountState" javaType="java.lang.String" jdbcType="VARCHAR"/> 
        </resultMap>
    
        <resultMap type="com.kay.entity.BankWater" id="bankwater">
            <id column="record_id"  property="recordId"/>
            <result column="in_account"  property="inAccount"  javaType="java.lang.String"  jdbcType="VARCHAR"/> 
            <result column="out_account" property="outAccount" javaType="java.lang.String" jdbcType="VARCHAR"/> 
            <result column="change_count" property="changeCount" javaType="java.math.BigDecimal" jdbcType="DECIMAL"/> 
            <result column="change_time"  property="changeTime"  javaType="java.util.Date"  jdbcType="DATE"/> 
            <result column="state" property="changeState" javaType="java.lang.String" jdbcType="VARCHAR"/> 
            <result column="detail" property="detail" javaType="java.lang.String" jdbcType="VARCHAR"/> 
        </resultMap>
    
        <select id="getAllInfo" statementType="CALLABLE" resultMap="account,bankwater" >
            {call pro_getinfo()
    }
    
    </select>

    java调用时:

    //查询所有记录的存储过程
            String s1="com.kay.dao.GetMapper.getAllInfo";
            List<List<?>> list1=session.selectList(s1);
    
            //对应第一个表
            System.out.println((List<Account>)list1.get(0));
            //对应第二个表
            System.out.println((List<Account>)list1.get(1));
    展开全文
  • 一个存储过程返回多个结果集,怎样获取,怎样操作? 如果有三个Table,显示三个查询结果,这三个查询结果都是来自于一个存储过程。请问怎样获取,怎样操作? ------解决方案-----------------------------------...
    一个存储过程返回多个结果集,怎样获取,怎样操作?
    如果有三个Table,显示三个查询结果,这三个查询结果都是来自于一个存储过程。请问怎样获取,怎样操作?

    ------解决方案--------------------------------------------------------
    用command对象执行存储过程
    Set rs1 = command.execute... 
    Set zzz = command.execute 
    Set rs3 = zzz.NextRecordset
    展开全文
  • //方式一:使用SqlDataAdapter   SqlDataAdapter sda = new SqlDataAdapter();   DataSet ds = new DataSet();...//Fill DataSet:如果结果集有多个,对应dataset中的多个table     
  • //方式一:使用SqlDataAdapter SqlDataAdapter sda = new SqlDataAdapter(); DataSet ds = new DataSet(); sda.Fill(ds);//Fill DataSet:如果结果集有多个,对应dataset中的多个table
  • 论坛中讨论过同一存储过程中多个 select 语句返回后结果集直接在 SQL 中合并的问题,未见到明确的解答,以前只知道可以通过客户端程序用nextRecord方法处理多个结果集,今天试了一下,对同一结构的查询,其多个结果...
  • 返回一个结果全世界都知道怎么处理,关键是返回多个结果集就不好办了,下面有一解决办法 存储过程代码DELIMITER $$;DROP PROCEDURE IF EXISTS `test`.`sp_test`$$CREATE PROCEDURE `test`.`sp_test` ()BEGIN ...
  • package jp.co.kindlingsoft; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet;...import java.sql.SQLException;...public class TestDB
  • 在开始本文的时候,我们先了解SQL SERVER中的一命令  SET NOCOUNT ON; 执行该命令 表示不返回计数行,什么是计数行了,比如我们执行 DELETE ,UPDATE,INSERT的时候,对多少条数据进行了修改,计数行的值就是多少...
  • mysql使用存储过程返回多个

    千次阅读 2016-08-07 23:16:00
    可以使用OUT、INOUT参数类型让存储过程返回多个结果值,存储函数不能胜任,因为只能返回一个值。比如统计student数据表里男生和女生人数并通过它的参数返回这两个计数值,让调用者可以访问它们: [sql] view...
  • 使用存储过程查询数据库,返回多个结果集,需要使用java接收和处理。并且展示到前端页面 二.环境: springboot+mybatis 数据库:sqlServer 三.解决过程: 存储过程: <!--返回结果集的配置--> <...
  • Java获取存储过程返回多个结果

    千次阅读 2017-09-08 07:15:24
    第一步:写你的存储过程  delimiter //  create procedure test_proc ()  begin  select * from test_table1 where id=1;  select * from test_table2 where id=2;  select * from test...
  • spring data Jpa 调用存储过程返回多个out参数 标注Entity @Entity @Table(name="SY_USER") @NamedStoredProcedureQueries({ @NamedStoredProcedureQuery(name="pd_ka_strreportscanx",...
  • jdbc调用存储过程获取多个结果

    千次阅读 2017-07-26 21:20:22
    这几天,公司重构一套erp,用到很多存储过程,但我在用jdbc调用存储过程的时候发现无法接收多个结果集(存储过程select返回的Result),而且国内很难找到解决方案,今天下午花了一下午,最后终于实现了。
  • mysql存储过程返回多个

    万次阅读 2018-07-09 13:15:50
    要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程。咱们先来看一个orders表它的结构:mysql&gt; desc orders; +----------------+-------------+------+-----+---------+-------+ | Field | ...
  • sql server 数据库的存储过程   ALTER PROCEDURE [dbo].[prc_bzdbbx_getinsuredetail]  @userName Varchar(12), --当前登录用户名  @userPwd Varchar(12), --当前登录用户口令  @centerno Varchar(20),...
  • JDBC调用存储过程 返回多结果

    千次阅读 2016-10-28 11:12:36
    package com.demo1; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.ResultSet;...//调用无参存储过程 包括查询和删除 public class Demo6 { //1.存储
  • (网上搜到的案例,都是固定个数的多个结果集的场景,比如这种:http://www.iteye.com/problems/78259 。**请注意,我的问题与此不同**。) 我需要返回不确定个数个结果集。MySQL存储过程形如: ``` while...
  • DB2 存储过程返回结果

    千次阅读 2018-05-14 21:26:21
    存储过程返回结果集,但是并未明确定义out参数的情况下,要正确获取到结果集,则必须明确设置返回结果数:result set 结果数如果没有声明返回结果数,那么存储过程中定义的游标是获取不到其值的1:创建...
  • 在.net中,DataSet可以自动接收多个结果集,形成DataTable数组。 使用JAVA时,也想要实现这个效果,百度一顿查找,终于找到解决的办法。 核心方法:CallableStatement ResultSet 具体实现代码: import java...
  • 创建一个返回select结果集的存储过程: --创建procedure create or replace procedure pro_emp(resule out sys_refcursor) is begin open resule for select * from emp; end; 调用: --调用 declare cur1 ...
  • oracle 存储过程返回结果集合

    千次阅读 2018-10-30 14:15:43
    oracle的存储过程和其他的不同,返回结果集合要用游标来传递,同时存储过程要定义在package程序包中。 一、传递一个参数,返回个结果集 1.先创建程序包和包体,两者关系类似类和类中的方法 create or replace ...
  • 表的结构跟存储过程返回结果集是相同的,类型什么的最好也一样。 create table #temTable( FSerialNum int, billNo varchar(200), Flevel varchar(200), beginDate datetime, FNumber varchar(500), ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 908,772
精华内容 363,508
关键字:

存储过程返回多个结果