返回系统游标集合

示例一:多个参数,手动映射返回字段

  第一步:参数配置(入参、出参)

<!-- 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 调用存储过程的更多相关文章

  1. IBatis.Net使用总结(四)-- IBatis 调用存储过程

    IBatis 调用存储过程 http://www.cnblogs.com/jeffwongishandsome/archive/2010/01/10/1543219.html http://www.c ...

  2. Java和Ibatis调用存储过程并取得返回值详解

    Java和Ibatis调用存储过程并取得返回值详解 2011-07-19 17:33 jiandanfeng2 CSDN博客 字号:T | T 本文主要介绍了Java和Ibatis调用存储过程的方法, ...

  3. Ibatis调用存储过程实现增删改以及分页查询

    1.Ibatis实现增删改操作很简单了,通常我是将某一模块的增删改功能写在一个存储过程里,通过一个标识符去区分执行增加还是修改抑或删除操作. statement: <!-- 存储过程:实现学生的 ...

  4. ibatis调用存储过程(无返回参数)

    ibatis调用存储过程例子: java: getSqlMapClientTemplate().insert(sql, paraMap) ibatis xml: <parameterMap id ...

  5. iBatis调用存储过程以及MySQL创建存储过程

    首先是MySQL中创建存储过程的SQL -- 列出全部的存储过程 SHOW PROCEDURE STATUS; -- 查看一个已存在的存储过程的创建语句,假设此存储过程不存在,会提示SQL错误(130 ...

  6. MyBatis调用存储过程,含有返回结果集、return参数和output参数

    Ibatis是我们经常使用的O/R映射框架,mybats是ibatis被Google收购后重新命名的一个工程,当然也做了大量的升级.而调用存储过程也是一次额C/S架构模式下经常使用的手段,我们知道,i ...

  7. MySQL 存储过程实例 与 ibatis/mybatis/hibernate/jdbc 如何调用存储过程

    虽然MySQL的存储过程,一般情况下,是不会使用到的,但是在一些特殊场景中,还是有需求的.最近遇到一个sql server向mysql迁移的项目,有一些sql server的存储过程需要向mysql迁 ...

  8. MyBatis学习总结(六)——调用存储过程(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013518.html 一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存 ...

  9. MyBatis入门学习教程-调用存储过程

    一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 create table p_user( id int primary key auto_incr ...

随机推荐

  1. hdu 4284 状态压缩dp

    题意: 有N 个点的无向图,要去其中 h个地点做事,做事需要先办理护照,之后可以挣一定数量的钱,知道了一开始有的总钱数,和 一些城市之间           道路的花费,问可不可以在 指定的 h 个城 ...

  2. bzoj 2483: Pku2279 Mr. Young's Picture Permutations -- 钩子公式

    2483: Pku2279 Mr. Young's Picture Permutations Time Limit: 1 Sec  Memory Limit: 128 MB Description   ...

  3. php上传文件常见问题(基础)

    既然上一篇文章<php上传中文文件文件名乱码问题>遇到了文件上传的问题,干脆把php上传文件时经常碰到的几个问题总结一下吧,以后用到时不用再去找了. 1.先做个最简单的上传文件 <h ...

  4. PAT甲级1017. Queueing at Bank

    PAT甲级1017. Queueing at Bank 题意: 假设一家银行有K台开放服务.窗前有一条黄线,将等候区分为两部分.所有的客户都必须在黄线后面排队,直到他/她轮到服务,并有一个可用的窗口. ...

  5. CentOS下的RPM包制作教程收集(rpmbuild)

    http://www.jinbuguo.com/redhat/rpmbuild.html(中文手册) https://www.linuxidc.com/Linux/2016-09/134955.htm ...

  6. Constant-on-time buck-boost regulator converts a positive input to a negative output

    Buck regulators find wide application as step-down regulators for converting large positive input vo ...

  7. Linux的进程优先级NI和PR

    为什么要有进程优先级? 这似乎不用过多的解释,毕竟自从多任务操作系统诞生以来,进程执行占用cpu的能力就是一个必须要可以人为控制的事情.因为有的进程相对重要,而有的进程则没那么重要. 进程优先级起作用 ...

  8. SQL中关于where后面不能放聚合函数(如sum等)的解决办法

    我们在编写较为复杂的SQL语句的时候,常常会遇到需要将sum()放到where后面作为条件查询,事实证明这样是无法执行的,执行会报[此处不允许使用分组函数]异常. 那么如何解决呢,使用HAVING关键 ...

  9. Android RadioButton设置选中时文字和背景颜色同时改变

    主要应用在购物车,像淘宝的那样,点击以后弹出一个选择种类颜色这样的popuwindow以后,然后这个选择种类的地方要用到类似这个玩意儿. 搜了一下,效果和这个文章一致.转了. 原文地址:http:// ...

  10. django一对多 增 删 改 查

    实现一对多表查询功能 项目代码: models.py from django.db import models # Create your models here. class Classes(mod ...