ibatis 调用存储过程
返回系统游标集合
示例一:多个参数,手动映射返回字段
第一步:参数配置(入参、出参)
<!-- property属性指定HashMap的具体键,虽然Map是无序的但是存储过程的入参顺序会按照parameter标签的排列顺序执行,mode属性指定入参或返回值 -->
<parameterMap class="java.util.HashMap" id="SHEHE_ERROR_Map">
<parameter property="FRCODE" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
<parameter property="FORGID" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
<parameter property="START" jdbcType="NUMBER" javaType="java.lang.Integer" mode="IN" />
<!-- 当oracle数据库参数是number类型时,必须得指定java与oracle数据类型的对应关系 -->
<parameter property="END" jdbcType="NUMBER" javaType="java.lang.Integer" mode="IN" />
<!-- 当oracle数据库参数是游标时,必须得指定java与oracle数据类型的对应关系 -->
<parameter property="out_cur" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT" />
</parameterMap>
第二步:返回值,将返回值封装到HashMap中
<resultMap class="java.util.HashMap" id="directoryMonitor_out_cursor">
<!-- column代表的是返回的字段,property代表的是HashMap的键,指定具体的键负责接收 -->
<result property="FORGID" column="FORGID"/>
<result property="FORGNAME" column="FORGNAME"/>
<result property="FCENNAME_TEM_COUNT" column="FCENNAME_TEM_COUNT"/>
<result property="ISNULLCENCODE_COUNT" column="ISNULLCENCODE_COUNT"/>
<result property="TOTALCOUNT" column="TOTALCOUNT"/>
</resultMap>
第三步:调用存储过程
<!-- ?号的个数须与<parameter>标签的个数保持一致 -->
<procedure id="getSHEHE_ERROR_DATA" parameterMap="SHEHE_ERROR_Map" resultMap="directoryMonitor_out_cursor">
<![CDATA[
{call PRC_DIAITEM_MONITOR(?,?,?,?,?)}
]]>
</procedure>
2020/04/18
说明:参数映射parameterMap的步骤不能省略(第一步);
返回值映射可以省略(第二步);
另外,mode的值:IN或者OUT必须大写;
只有当数据库的字段是varchar2类型时,可以和java的String类型自动匹配,也就是不用声明javaType和jdbcType,否则其他数据类型都得指定匹配对象。

不然就会报这个错。
示例二:只有一个参数,自动映射返回数据
<!-- 指标三级查询 -->
<!-- ?映射,和?数量保持一致 -->
<parameterMap class="java.util.HashMap" id="indexMap">
<!-- 游标cursor必须声明属性javaType和jdbcType,并设置值 -->
<parameter property="OUT_CURSOR" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
</parameterMap>
<!-- parameterMap必须映射,resultMap可以不做映射,直接用resultClass接收返回的数据 -->
<procedure id="getIndexDetail" parameterMap="indexMap" resultClass="java.util.HashMap">
<![CDATA[
{call PRC_INDEX_SEARCH(?)}
]]>
</procedure>
ibatis 调用存储过程的更多相关文章
- IBatis.Net使用总结(四)-- IBatis 调用存储过程
IBatis 调用存储过程 http://www.cnblogs.com/jeffwongishandsome/archive/2010/01/10/1543219.html http://www.c ...
- Java和Ibatis调用存储过程并取得返回值详解
Java和Ibatis调用存储过程并取得返回值详解 2011-07-19 17:33 jiandanfeng2 CSDN博客 字号:T | T 本文主要介绍了Java和Ibatis调用存储过程的方法, ...
- Ibatis调用存储过程实现增删改以及分页查询
1.Ibatis实现增删改操作很简单了,通常我是将某一模块的增删改功能写在一个存储过程里,通过一个标识符去区分执行增加还是修改抑或删除操作. statement: <!-- 存储过程:实现学生的 ...
- ibatis调用存储过程(无返回参数)
ibatis调用存储过程例子: java: getSqlMapClientTemplate().insert(sql, paraMap) ibatis xml: <parameterMap id ...
- iBatis调用存储过程以及MySQL创建存储过程
首先是MySQL中创建存储过程的SQL -- 列出全部的存储过程 SHOW PROCEDURE STATUS; -- 查看一个已存在的存储过程的创建语句,假设此存储过程不存在,会提示SQL错误(130 ...
- MyBatis调用存储过程,含有返回结果集、return参数和output参数
Ibatis是我们经常使用的O/R映射框架,mybats是ibatis被Google收购后重新命名的一个工程,当然也做了大量的升级.而调用存储过程也是一次额C/S架构模式下经常使用的手段,我们知道,i ...
- MySQL 存储过程实例 与 ibatis/mybatis/hibernate/jdbc 如何调用存储过程
虽然MySQL的存储过程,一般情况下,是不会使用到的,但是在一些特殊场景中,还是有需求的.最近遇到一个sql server向mysql迁移的项目,有一些sql server的存储过程需要向mysql迁 ...
- MyBatis学习总结(六)——调用存储过程(转载)
本文转载自:http://www.cnblogs.com/jpf-java/p/6013518.html 一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存 ...
- MyBatis入门学习教程-调用存储过程
一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 create table p_user( id int primary key auto_incr ...
随机推荐
- Loj10170骑士
试题描述 在 n×n(1≤n≤10)的棋盘上放 k(0≤k≤n)个国王(可攻击相邻的8个格子),求使它们无法互相攻击的方案总数. 输入 输入有多组方案,每组数据只有一行为两个整数n和k. 输出 每组数 ...
- 【原创】LogCat信息演示Activity生命周期
界面如下:注意:这是在手机.竖屏状态下! (一)1个Activity /** * 7个方法 * 测试1个Activity的生命周期 * * LogCat: ...
- Linux下使用ISC DHCP可以实现动态推送静态路由表
ISC DHCP可以实现动态推送静态路由表,先做个记号. 参考: https://gauvain.pocentek.net/docs/dhcpd-push-routes/ http://www.isc ...
- DOM节点中属性nodeName、nodeType和nodeValue的区别 < Delphi >
http://msdn.microsoft.com/zh-cn/library/vstudio/hf9hbf87.aspx <?xml version="1.0"?> ...
- 面试题1:如何实现C++单例模式?
1. 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径.设计模式中运用了面向对象编程语言的重要特性:封装.继承.多态.真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积 ...
- CocoaAsyncSocket 与 Java服务 交互
注意:向客户端写数据时最后需要加上\n,不然很久都不会得到服务端的返回. 上面为普通的socket服务端,最近项目采用apache mina框架建后台的socket服务端,采用上面的asyncSock ...
- Sql server left join,right join和inner join的比较
转载于:http://www.2cto.com/database/201206/137067.html Sql server left join,right join和inner join的比较 ...
- Centos 7 配置 VNCServer 經驗
安裝 Centos 7後, 習慣性的安裝 Xmanager 3或4, 都不能正常工作, 無奈之下開始安裝 VNCServer. (個人習慣使用Xmanager, 因為不需要安裝,只要配置一下就能用, ...
- 这篇讲PHP的讲的有些道理 & mb_substr & 中文处理
http://chengxu.org/p/239.html Python 是否是下一个 PHP? 1. PHP胜在最要命的部署上:没有任何其他语言有像 PHP 一样适合大规模部署的方式.基本上装好 A ...
- log4net 使用笔记
一.Log4net特征 1.自定义日志输出级别 Log4net将日志分为五个级别优先级从高到低依次:FATAL > ERROR > WARN > INFO > DEBUG,此外 ...