`

Ibatis调用Oracle存储过程,以及返回Cursor结果集的处理

阅读更多
最近一项目用Struts+Spring+Ibatis
俺是新手,第一次用Ibatis
于是网上查资料,下载DEMO,运行。。。。。
开始比较顺利,无非就是些select/update/delete
后来碰到一存储过程的调用,没办法,网上查,一步步试

存储过程具体就不说了,那是DBA的事情
传入一个或者几个Integer或者String
传出来是ORACLECURSOR
Ibatis配置文件ibatis.xml:
<resultMap id="result-map" class="com.xxx.xxx.Table">
    <result property="rsId" column="id" />
    <!--在Java对象跟Oracle列之间转换 -->
</resultMap>
<parameterMap id="parameter-map" class="java.util.HashMap" > 
    <parameter property="param1" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/> 
    <parameter property="param2" jdbcType="Integer" javaType="java.lang.Integer" mode="IN"/> 
    <parameter property="result" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" />
</parameterMap>
<procedure id="testCur" resultMap="result-map" parameterMap="parameter-map"> 
    {call testProcedures(?, ?, ?)} 
</procedure>

再看java里面调用:
Map paramMap = new HashMap();
String str = request.getParameter(.....);
int n = request.getParameter(.....);
paramMap.put("param1",str);
paramMap.put("param2",n);
List detailList = null; 
try{
detailList = getSqlMapClientTemplate().queryForList("testCur", paramMap);
//可以用getSqlMapClientTemplate().queryForObject("testCur", paramMap); 返回值是Object。
}catch(Exception ex){
ex.printStackTrace();
}
return detailList;

detailList就是需要的结果集!
分享到:
评论
2 楼 honda418 2009-02-17  
liuchaono1 写道

怎么没把存储过程贴出来啊?


那东西不是重点,反正就是传入2个参数,然后返回一个结果集!
1 楼 liuchaono1 2009-02-04  
怎么没把存储过程贴出来啊?

相关推荐

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程

    在IT领域,特别是数据库操作与Java开发中,利用ibatis框架调用...通过上述步骤,我们可以成功地使用ibatis调用Oracle存储过程,并处理返回的多个结果集。这不仅简化了数据库操作,还提高了代码的可读性和可维护性。

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

    ### Ibatis调用Oracle存储过程返回自定义类型 在企业级应用开发中,尤其是在金融、保险等业务场景中,往往需要处理复杂的数据结构与逻辑。本文将深入探讨如何使用Ibatis框架来调用Oracle数据库中的存储过程,并实现...

    ibatIS调用存储过程

    5. **处理结果**:存储过程执行后,可能会有多个结果集返回。ibatIS会自动处理这些结果,将其转换为Java对象。如果存储过程没有返回值,结果通常是一个空的List。 6. **异常处理**:在调用存储过程时,可能出现SQL...

    ibatis调用存储过程

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

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

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

    ibatis调用存储过程.txt

    根据提供的文件信息,标题为“ibatis调用存储过程”,主要关注的是如何使用ibatis框架来调用数据库中的存储过程。下面将详细解释ibatis框架的基本概念、存储过程的概念以及如何在ibatis中配置和执行存储过程。 ### ...

    ibatis调存储过程返回游标

    当存储过程返回游标时,iBatis允许我们通过`resultMap`来映射结果集,例如: ```xml ``` 这个`resultMap`用于将查询结果映射到Java对象上,其中每个`result`元素对应结果集中的一列。 对于返回游标的...

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

    本篇文章将详细探讨如何在iBatis中调用Oracle的函数和存储过程,尤其是处理IN和OUT参数以及游标的场景。 首先,我们需要了解iBatis的基本工作原理。iBatis是一个SQL映射框架,它允许开发者将SQL语句写在XML配置文件...

    iBatis调用存储过程

    iBatis调用存储过程

    ibatis调用存储过程介绍

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

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

    ### Ibatis调用存储过程详解 #### 一、引言 在实际的软件开发过程中,存储过程因其执行效率高及数据库级别的安全性等优点被广泛应用于各种业务场景之中。而对于使用Ibatis作为持久层框架的应用来说,如何有效地...

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

    在这个项目中,我们结合了Spring框架、Ibatis持久层框架以及Blazeds技术,来演示如何调用存储过程并处理返回的结果集。下面将详细讲解这些技术的运用。 首先,J2EE是一种广泛用于开发分布式企业应用的平台,它提供...

    ibatis+oracle实例

    3. **存储过程调用**:Ibatis可以通过`&lt;select&gt;`、`&lt;procedure&gt;`元素调用Oracle的存储过程,增强业务逻辑的封装性。 4. **连接池管理**:Ibatis可以与各种连接池(如C3P0、Druid、HikariCP等)集成,提高数据库连接...

    ibatis连接oracle所需的jar包

    ojdbc14.jar包含了Oracle JDBC Driver,允许Java代码通过JDBC API执行SQL语句、获取结果集、处理事务等。注意,这个版本的驱动适用于Java 1.4,如果使用更高版本的Java,可能需要更新到ojdbc6.jar或ojdbc8.jar等兼容...

    ibatis 读取oracle clob类型

    ibatis 读取oracle clob类型

    Spring MVC+ibatis+oracle框架整合

    与传统的JDBC相比,iBatis简化了SQL的编写和执行,同时避免了手动管理连接和结果集。在iBatis中,SQL语句被定义在XML配置文件或注解中,与Java代码解耦。通过Mapper接口,开发者可以在服务层调用这些SQL语句,实现...

    spring+ibatis+oracle分页缓存源码

    例如,通过WHERE ROWNUM BETWEEN start AND end限制返回的结果集范围。同时,可以结合索引来进一步优化查询性能,尤其是在处理大数据量时。此外,Oracle的Materialized Views(物化视图)可以在后台预先计算并存储...

Global site tag (gtag.js) - Google Analytics