返回系统游标集合

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

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

<!-- 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. JDK源码(1.7) -- java.util.Deque<E>

    java.util.Deque<E> 源码分析(JDK1.7) -------------------------------------------------------------- ...

  2. [转]Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件

      Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件. 1.为了防止拖动ListView时,在列表末尾重复数据显示.需要加入 HashMap<In ...

  3. Qt on android 蓝牙开发(控制小车)

    因为要做一个用蓝牙控制小车的app,就用着QT搞了下,网上关于QT蓝牙开发的资料比较少,我在这里记录下过程希望对看到了人有所帮助 首先在项目文件里添加 QT += bluetooth 这样就可以用QT ...

  4. JQ自定义下拉列表插件

    自从上次做了JQ自定义分页插件和表格插件后,就没在自定义过插件了,这一个月都在用linq和ef,基本前端都没怎么去碰了,今天有个同事说有个项目需要在下拉框里面带有复选框,本来想网上找下插件的,一想,其 ...

  5. 2038: [2009国家集训队]小Z的袜子(hose) (莫队算法)

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2038 专题练习: http://acm.hust.edu.cn/vjudge/conte ...

  6. Spartan-6 FPGA Configuration

    These configuration pins serve as the interface for a number of different configuration modes: • JTA ...

  7. serverbash漏洞修补日记——2014/09/30

    近期bash漏洞在网上闹得沸沸扬扬的,我也修补一下.以防万一. 须要用到的命令: 查看操作系统版本号:cat /etc/issue 查看bash版本号:bash -version 查看操作系统是64位 ...

  8. [Android Pro] Android 必知必会-使用 supportV4 的 RoundedBitmapDrawable 实现圆角

    RoundedBitmapDrawable 是 supportV4 下的一个类,有了它,显示圆角和圆形图片的情况下就不需要额外的第三方类库了,还能和各种图片加载库配合使用. 背景 今天无意间看到一段实 ...

  9. Linux进程间通信—信号量

    二.信号量(semophore) 信号量是一种计数器,可以控制进程间多个线程或者多个进程对资源的同步访问,它常实现为一种锁机制.实质上,信号量是一个被保护的变量,并且只能通过初始化和两个标准的原子操作 ...

  10. 运算符重载,浅拷贝(logical copy) ,vs, 深拷贝(physical copy),三大件(bigthree problem)

    一般的我们喜欢这样对对象赋值: Person p1;Person p2=p1; classT object(another_object), or    A a(b); classT object = ...