`

ibatis 调用存储过程返回游标问题

阅读更多
存储过程:
create or replace procedure P_search(weight_value in integer, p_cursor out types.searchNature_CURSOR) as
begin
  open p_cursor for
    select globalId
      from (select sum(WEIGHT) as w, globalId
              from EMPI_TEMP
             group by globalId
             order by sum(WEIGHT) desc)
     where w > weight_value;

end P_search;


sqlMap.xml:

<parameterMap id="test_map" class="java.util.HashMap">
<parameter property="weight_value" jdbcType="INTEGER"
javaType="java.lang.Integer" mode="IN" />
<parameter property="p_cursor" jdbcType="ORACLECURSOR"
javaType="java.sql.ResultSet" mode="OUT"/>
</parameterMap>
<procedure id="query_search" parameterMap="test_map" resultClass="java.lang.String">
{call p_search(?,?)}
   </procedure>

java:

SqlMapClient client =  IBatisConfig.getSqlMapper();
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("weight_value", 30);
        try { 
            List<String> list = client.queryForList("query_search",map);
            System.out.println(list.size());
        }
        catch (SQLException e) {
         
        }


使用 ibatis 2.1.6 版本执行有问题。搞了半天。发现时这个版本对存储过程支持有问题。
换成 2.3.4 问题解决。
分享到:
评论

相关推荐

    ibatis调存储过程返回游标

    ibatis调存储过程返回游标,资料整理

    ibatIS调用存储过程

    ibatIS调用存储过程是数据库操作中常见的一种技术,特别是在复杂的业务逻辑处理或数据批量操作时,存储过程能够提供更高的效率和更好的性能。本文将深入探讨如何在ibatIS框架中调用存储过程,以及涉及到的相关知识点...

    IBATIS调用存储过程

    本文将详细探讨如何使用iBATIS调用Oracle存储过程,并处理返回的Cursor结果集。 首先,理解iBATIS调用存储过程的基本原理。iBATIS允许开发者在映射文件中定义存储过程调用,通过`&lt;procedure&gt;`标签来实现。在这个...

    ibatis调用存储过程

    其中,`id`是方法名,`parameterType`表示没有输入参数,`resultType`则是返回结果的类型,这里我们假设存储过程返回的是一个Map。 2. **带参数的存储过程** 对于带参数的存储过程,我们需要在`&lt;select&gt;`标签内...

    ibatis调用存储过程介绍

    在Java开发中,使用iBATIS(现在称为MyBatis)作为持久层框架时,调用数据库的存储过程是一种常见的需求。本文将详细介绍如何使用iBATIS调用存储过程,并提供一个简单的示例来说明其过程。 首先,我们需要在数据库...

    iBatis调用存储过程

    iBatis调用存储过程

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

    ibatis调用存储过程.txt

    ibatis调用存储过程.txt [removed] var share_info = {}; [removed]

    Ibatis调用存储过程调用存储过程

    Ibatis中调用其它的SQL语句很容易,那么如何在Ibatis中调用存储过程呢?

    ibatis调用oracle存储过程

    ibatis调用oracle存储过程

    Ibatis调用Oracle存储过程返回自定义类型

    Ibatis调用Oracle存储过程,返回自定义的类型。

    ibatis调用oracle的函数,存储过程的方法 IN 和OUT /游标

    在iBatis中,当存储过程返回一个游标时,你可以将其映射为一个Java List。为此,你需要在Java方法中声明一个List类型的参数,而在SQL映射文件中,使用`&lt;resultMap&gt;`定义一个结果集映射,然后在`&lt;selectResult&gt;`标签...

    IBatis查删改查与调用存储过程 mysql数据库

    "IBatis查删改查与调用存储过程 mysql数据库" 这个标题揭示了本文将深入探讨如何使用IBatis框架在MySQL数据库中执行基本的CRUD(创建、读取、更新、删除)操作,以及如何调用存储过程。IBatis是一个轻量级的Java持久...

    ibatis调用oracle的函数,存储过程的方法

    - 如果存储过程返回多个结果集,可以通过`&lt;resultMap&gt;`标签和`&lt;collection&gt;`标签来处理。 通过以上步骤,你可以在Ibatis中顺利调用Oracle的函数和存储过程,实现数据库层面的复杂操作。记住,正确配置和使用参数是...

    J2EE+Spring+Ibatis2+blazeds存储过程调用返回结果集

    在调用存储过程时,Ibatis允许开发者编写SQL语句或存储过程,然后在XML配置文件中定义这些操作,使得调用过程直观且易于维护。 Blazeds是一个Flash Remoting解决方案,主要用于Flex和Java之间的数据通信。通过...

    ibatis与存储过程(带输出参数的应用)

    需要注意的是,虽然这里使用了`selectOne`,但实际上存储过程可能返回多个结果集或者无结果,这时可以使用`sqlSession.callableStatement()`方法,然后调用`CallableStatement`的相关方法来处理。 在实际项目中,...

    ibatis官方中文文档

    **iBATIS存储过程调用** 在iBATIS中调用存储过程通常涉及以下几个步骤: 1. **配置存储过程**:在SQL映射文件中定义存储过程的标签,指定存储过程名以及输入和输出参数。 2. **设置参数**:在Java代码中创建参数...

    IBatis中的存储过程应用实例

    在IT行业中,数据库操作是不可或缺的一部分,而IBatis作为一款流行的数据映射框架,提供了一种灵活的方式来处理SQL语句,包括调用存储过程。存储过程是数据库中预编译的SQL语句集合,可以提高性能、增强安全性,并...

    ibatis增删查改,存储过程调用

    本篇文章将深入探讨如何在Ibatis中实现增、删、查、改(CRUD)操作,并调用存储过程,同时涉及相关的表结构设计。 首先,Ibatis通过XML配置文件或注解方式定义了SQL语句,允许我们编写动态SQL,以适应不同的查询...

Global site tag (gtag.js) - Google Analytics