ibatis中如何调用存储过程

1)sqlmap.xml中的配置如下:

需要注意的事项:

a) parameterMap 中对应的属性property的值要和存储过程中的名字一样,并且对应的顺序要和存储过程中的顺序一致,

否则可能无法获取对应的返回值;

<!-- 调用packaget的存储过程的参数 -->

<parameterMap id="proProductDzProcParam" class="java.util.Map">

<parameter property="p_dzno"  jdbcType="VARCHAR"  javaType="java.lang.String" mode="OUT" />

<parameter property="p_vchtype"  jdbcType="VARCHAR"  javaType="java.lang.String" mode="IN" />

<parameter property="p_productclass" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />

<parameter property="p_dptcode"  jdbcType="VARCHAR"  javaType="java.lang.String" mode="IN" />

</parameterMap>

<!-- 调用package的存储过程生成单证号-->

<procedure id="proProductDzProc" parameterMap="proProductDzProcParam">

<![CDATA[

{call proddata.product_dz_proc.pd_getdzno(?,?,?,?)}  //这里的{}不一定需要

]]>

</procedure>

2)java中如何调用

public String getProductDZNO(String pVchtype, String productclass, String pDptcode) throws DAOException {

try {

Map<String, String> paramMap = new HashMap<String, String>();

paramMap.put("p_vchtype", pVchtype);

paramMap.put("p_productclass", productclass);

paramMap.put("p_dptcode", pDptcode);

paramMap.put("p_dzno", null);

super._queryForObject("proProductDzProc", paramMap);

return paramMap.get("p_dzno");

} catch (Exception e) {

String error = "生成单证号出错";

LogUtil.error(e, this.getClass().getName(), "getProductDZNO", e.getMessage(), error);

throw new DAOException(error);

}

}

时间: 2024-12-18 14:40:31

ibatis中如何调用存储过程的相关文章

asp.net中怎样调用存储过程和存储过程的写法(转载,留着自己看)

asp.net中怎样调用存储过程和存储过程的写法 创建一个只有输入参数的存储过程 create procedure proc_user@name varchar(20),@Password varchar(100)as select * from loginuser where name like @name ---创建一个有输入和输出参数的存储过程 create procedure proc_usertext@name varchar(20),@blog varchar(100) output

oracle中如何调用存储过程

一.通过pls块来调用存储过程: declare p_dzno varchar2(50); p_vchtype  VARCHAR2(50); p_productclass  VARCHAR2(50); p_dptcode  VARCHAR2(50); begin p_vchtype:='MP'; p_productclass:='03'; p_dptcode:='206'; PRODDATA.product_dz_proc.pd_getdzno(p_dzno,p_vchtype,p_produc

ibatis中如何调用出参为游标的存储过程

1)创建出参为游标的存储过程 --创建一个产品合作伙伴的package create or replace package XXX.product_partner_proc is -- Author  : XXX -- Created : 2014/11/11 9:39:29 -- Purpose : XXX -- Public function and procedure declarations type T_CURSOR is ref cursor; procedure get_sale_

net中IDataParameter调用存储过程的实现方法

www.qdmm.com/BookReader/41468,68391862.aspxwww.qdmm.com/BookReader/41468,68391863.aspxwww.qdmm.com/BookReader/41468,68391864.aspxwww.qdmm.com/BookReader/41468,68391870.aspxwww.qdmm.com/BookReader/41468,68391871.aspxwww.qdmm.com/BookReader/41468,68391

FAQ系列 | Spring框架中调用存储过程失败

Spring框架中,调用存储过程同时还需要show create procedure权限,对于普通用户而言,还要授予 select on mysql.proc 权限才能正常 --------------------------------------分割线-------------------------------------- 知数堂 (http://zhishuedu.com)培训是由资深MySQL专家叶金荣.吴炳锡联合推出的专业优质培训品牌,主要有MySQL DBA实战优化和Python

Postgresql中存储过程(函数)调用存储过程(函数)时应用注意的问题

在postgresql中我们在执行存储过程中往往会使用select 存储过程,但是如果存储过程中再调用 存储过程时,就不能这样用了,应该用perform 存储过程,来看看官方文档的说明 ===================================================================== 执行一个没有结果的表达式或者命令 有时候我们希望计算一个表达式或者一个命令,但是却丢弃其结果(通常因为我们经常调用一些存在有用的副作用但是不存在有用结果值的函数). 要在 P

IBatis.Net学习笔记十三:在IBatis.Net中调用存储过程

其实调用方式比较简单,主要也就是两种类型的存储过程:1.更新类型的存储过程2.查询类型的存储过程下面就来看看具体的调用方式:1.更新类型的存储过程sp_InsertAccount: CREATE PROCEDURE [dbo].[sp_InsertAccount]    -- Add the parameters for the stored procedure here   @Account_ID int,   @Account_FirstName varchar(32),   @Accoun

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

首先是MySQL中创建存储过程的SQL -- 列出所有的存储过程 SHOW PROCEDURE STATUS; -- 查看一个已存在的存储过程的创建语句,如果此存储过程不存在,会提示SQL错误(1305):PROCEDURE pro_init does not exist SHOW CREATE PROCEDURE pro_init; -- 创建存储过程 DROP PROCEDURE IF EXISTS pro_init; -- 删除一个已存在的存储过程 DELIMITER // -- 声明当前

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

IBatis 调用存储过程 http://www.cnblogs.com/jeffwongishandsome/archive/2010/01/10/1543219.html http://www.cnblogs.com/firstyi/archive/2008/01/25/1053208.html 存储过程大致分为两种: 查询类存储过程——select查询类的存储过程,不曾改变数据库数据的存储过程 更新类存储过程——Update/Insert/Delete类型的存储过程,改变数据库数据的存储过