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 ...
随机推荐
- 20162304 实验一《Java开发环境的熟悉》实验报告
Linux基础与Java开发环境 实验内容 1.熟悉Linux基础操作: 2.使用JDK编译.运行简单的Java程序: 实验要求 1.学习<Linux基础入门(新版)> 2.完成实验.撰写 ...
- Java编程思想学习(五)----第5章:初始化与清理
随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主因之一. C++引入了构造嚣(constructor)的概念,这是一个在创建对象时被自动调用的特殊方法.Java中也采用了构造器,并 ...
- WampServer -- “You don't have permission to access /phpmyadmin/ on this server.”
当你安装完成wamp后,打开localhost或ip时发现已经可以运行了 但想使用phpmyadmin时,发现提示如下内容: You don't have permission to access / ...
- 实用在线小工具 -- Google URL Shortener
实用在线小工具 -- Google URL Shortener 当你想分享一些你觉得有趣的东西,但是那个链接太长,以至于贴上去一大片.比如在微博上分享一张图片,然后贴上去图片的链接,url ...
- mysql group by 组内排序
有数据表 comments------------------------------------------------| id | newsID | comment | theTime |---- ...
- Linux可以明文传输密码的工具sshpass
普通ssh只能手动输入密码,但是sshpass可以明文指定密码,但不建议使用,太不安全了.
- 再见了,DM
在DM奋斗了20个月之后,我终于有机会DM说再见.这我不是我第一次和DM说再见,因此我也不确定这次的再见是再也不见,还是再次见面.但有一点可以确定的是,在接下来相当长的一段时间内,我是没有机会 ...
- Go:Hello World!
备注 结束了一周紧张的工作,周末像品茶一样玩味一下Go,本文主要记录学习Go的经历. Go是什么? 官方网站:http://golang.org/. 在Windows下安装Go 官方教程:http:/ ...
- Jacob的使用出错总结
转自:http://blog.163.com/wm_at163/blog/static/13217349020114166447941/ Jacob的使用方法: 1.在工程中导入 jacob.jar ...
- 配置Android-Annotation (github20大开源:http://www.eoeandroid.com/thread-278980-1-1.html)
1. 把androidannotations-X.X.X-api.jar 放在libs文件夹 2. 把androidannotations-X.X.X.jar 放在文件夹compile-libs,1与 ...