在Ibatis中调用存储过程或存储的函数。
和调用sql语句不同的是需要设置入参和出参
这篇文章已经说的很详细了。
http://www.delphibbs.com/keylife/iblog_show.asp?xid=28107
可是我配置的时候确怎么也得不到正确的结果,错误大致是“记录数太多”,查询了很多资料才发现原来Ibatis2.2之前是不支持存储过程返回CURSOR,所以请需要使用Ibatis调用存储过程并且获取记录集游标的同学注意了。下面帖一个我的配置:
xml 代码
-
- <resultMap id="rm_out_getUserList" class="java.util.HashMap">
- <result property="id" column="id" />
- <result property="name" column="name" />
- <result property="gname" column="gname" />
- <result property="cname" column="cname" />
- </resultMap>
- <parameterMap id="pm_in_getUserList"
- class="java.util.Map">
- <parameter property="result" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" resultMap="rm_out_getUserList" />
- <parameter property="p_name" jdbcType="VARCHAR2" javaType="java.lang.String" mode="IN" />
- <parameter property="p_gname" jdbcType="VARCHAR2" javaType="java.lang.String" mode="IN" />
- <parameter property="p_cname" jdbcType="VARCHAR2" javaType="java.lang.String" mode="IN" />
- </parameterMap>
- <procedure id="getUserList"
- parameterMap="pm_in_getUserList">
- {? = call PCK_USER.F_GET_USER(?,?,?)}
- </procedure>
绿色部分要注意(配置的第一行),如果是要将结果集以map形式返回,一定要写HashMap。<resultmap background-color:="" class="&lt;span style=" id="rm_out_getUserList"><result column="id" property="id"><result column="name" property="name"><result column="gname" property="gname">
<parametermap id="pm_in_getUserList">
<parameter resultmap="rm_out_getUserList" mode="OUT" javatype="java.sql.ResultSet" jdbctype="ORACLECURSOR" property="result">
<parameter mode="IN" javatype="java.lang.String" jdbctype="VARCHAR2" property="p_name">
<parameter mode="IN" javatype="java.lang.String" jdbctype="VARCHAR2" property="p_gname"></parameter>
</parameter>
</parametermap>
</result></result></result></resultmap>
分享到:
相关推荐
### Ibatis调用存储过程详解 #### 一、引言 在实际的软件开发过程中,存储过程因其执行效率高及...这些步骤结合起来,使得开发者能够在Ibatis框架下灵活高效地使用存储过程功能,从而更好地满足复杂业务需求的处理。
在ibatIS中调用存储过程,我们需要了解以下步骤: 1. **配置存储过程**:在`ibatis-config.xml`配置文件中,定义数据源和事务管理器,并在`sqlMapConfig.xml`中添加对应的Mapper配置。在Mapper文件中,使用`...
在iBATIS中调用存储过程,我们主要通过`<select>`标签,尽管它的名字可能让人误解,但在iBATIS中,`<select>`不仅可以用于查询,也可以用于调用存储过程。 1. **配置Mapper XML文件** 在iBATIS中,存储过程的调用...
ibatis调用oracle存储过程分页
### 三、ibatis中调用存储过程的方法 #### 1. 配置环境 首先确保已经正确安装并配置好了ibatis框架,包括添加ibatis的jar包到项目中,配置数据源等。 #### 2. 创建存储过程 在数据库中创建一个存储过程,例如一...
在IT领域,特别是数据库操作与Java开发中,利用ibatis框架调用Oracle存储过程是一个常见的需求,这不仅能够提升代码的执行效率,还能增强应用程序的安全性。本文将深入解析ibatis如何与Oracle数据库中的存储过程进行...
通过上述步骤,我们可以看到在iBatis中调用存储过程并返回游标的基本流程。首先定义参数映射和结果映射,然后在存储过程中指定这些映射,最后调用存储过程并处理返回的游标数据。这种机制为Java应用程序提供了强大的...
本篇文章将详细介绍如何在Ibatis中调用Oracle的函数和存储过程。 首先,理解基本概念: 1. **Oracle函数**:函数是一段可重复使用的PL/SQL代码,它接收输入参数(IN参数),可选地返回一个结果值(RETURN参数)。...
总的来说,调用Oracle存储过程并在iBATIS中处理Cursor结果集涉及多个步骤,包括定义`parameterMap`、设置正确的`jdbcType`和`javaType`、在`<procedure>`标签中使用正确数量的占位符以及创建`ResultMap`来解析结果。...
在Ibatis中调用存储过程,我们需要在映射文件中定义SQL语句,但这里的语法略有不同。对于带有输出参数的存储过程,我们需要使用`<select>`标签而不是通常用于查询的`<resultMap>`,并且使用`procedure`属性指定存储...
在Java开发中,使用iBATIS(现在称为MyBatis)作为持久层框架时,调用数据库的存储过程是一种常见的需求。本文将详细介绍如何使用iBATIS调用存储过程,并提供一个简单的示例来说明其过程。 首先,我们需要在数据库...
iBatis调用存储过程
"IBatis查删改查与调用存储过程 mysql数据库" 这个标题揭示了本文将深入探讨如何使用IBatis框架在MySQL数据库中执行基本的CRUD(创建、读取、更新、删除)操作,以及如何调用存储过程。IBatis是一个轻量级的Java持久...
本篇文章将详细探讨如何在iBatis中调用Oracle的函数和存储过程,尤其是处理IN和OUT参数以及游标的场景。 首先,我们需要了解iBatis的基本工作原理。iBatis是一个SQL映射框架,它允许开发者将SQL语句写在XML配置文件...
在iBATIS中调用存储过程通常涉及以下几个步骤: 1. **配置存储过程**:在SQL映射文件中定义存储过程的标签,指定存储过程名以及输入和输出参数。 2. **设置参数**:在Java代码中创建参数对象,根据存储过程的需求...
在本实例中,我们将探讨如何在IBatis中使用存储过程,特别是针对SQL Server数据库。 首先,我们需要创建一个存储过程。在本例中,我们有一个名为`P_UpdateUserName`的存储过程,它接受两个输入参数`@UserName`和`@...
本文将深入探讨如何使用Ibatis框架来调用Oracle数据库中的存储过程,并实现返回自定义类型的处理方法。 #### Oracle自定义类型简介 Oracle支持用户自定义数据类型,这为复杂数据结构的应用提供了极大的便利。...
这篇博客“iBatis执行非查询语句(CRUD,函数和过程)”深入探讨了如何在iBatis中执行创建、读取、更新和删除(CRUD)操作,以及调用数据库存储过程和函数。 一、iBatis简介 iBatis最初由MyBatis的创始人Clinton ...
在调用存储过程时,Ibatis允许开发者编写SQL语句或存储过程,然后在XML配置文件中定义这些操作,使得调用过程直观且易于维护。 Blazeds是一个Flash Remoting解决方案,主要用于Flex和Java之间的数据通信。通过...