mybatis调用存储过程及返回值获取
存储过程的返回结果直接放在 传入参数的map中(paramCusKey)
调用前{INPARA=CUSTOMER_KEY=545}
调用后
{OUTPARA=CUS_USER_ID=E00000049_02, INPARA=CUSTOMER_KEY=545}
//类似用mybatis内置的插入方法自动返回主键一样,(之前有set主键的话就不返回插入后的值了,直接是set值,)返回存储过程输出参数
<select id="getCusKey" parameterType="map" statementType="CALLABLE" resultType="string">
<![CDATA[
{call PD_OPT_ID(#{INPARA,mode=IN,jdbcType=VARCHAR},#{OUTPARA,mode=OUT,jdbcType=VARCHAR})} //这里是存储过程接收返回结果的写入map中的字段
]]>
</select>
public String getCusKey(Map<String,Object> param);
Map<String,Object> paramCusKey = new HashMap<String,Object>();
paramCusKey.put("INPARA", "CUSTOMER_KEY="+tbCusUserBeanVo.getCustomerKey());
tbCusUserDao.getCusKey(paramCusKey);
String out=paramCusKey.get("OUTPARA").toString().substring(paramCusKey.get("OUTPARA").toString().indexOf("=")+1, paramCusKey.get("OUTPARA").toString().length());//获取结果,注意只是当前调用存储过程的dao层可以获取,到了serveice不可--map没传递出去
System.out.println(out);
System.out.println(paramCusKey.get("OUTPARA").toString());
===================================
//mybatis调用存储过程的另一xml写法
<parameterMap type="java.util.Map" id="recommendMap">
<parameter property="inpara" mode="IN" jdbcType="VARCHAR"/>
<parameter property="outpara" mode="OUT" jdbcType="VARCHAR"/>
</parameterMap>
<select id="recommend" parameterMap="recommendMap" statementType="CALLABLE">
<![CDATA[
call PD_CON_OBJ_RECOMMEND(?,?)
]]>
</select>
@Override
public String recommend(String conobjKey) {
StringBuffer inparasb = new StringBuffer("");
inparasb.append("CONOBJ_KEY=");
inparasb.append(conobjKey);
inparasb.append('\r');
inparasb.append('\n');
inparasb.append("RECOMMEND_NAME=");
inparasb.append("");
String inpara = inparasb.toString();
Map<String,String> map = new HashMap<String,String>();
map.put("inpara", inpara);
tbConObjMapper.recommend(map);
return map.get("outpara");
}
public String recommend(Map<String,String> map);
相关推荐
在调用存储过程时,我们需要利用MyBatis提供的API和配置机制来实现。 1. **配置MyBatis**:在`mybatis-config.xml`配置文件中,你需要添加数据库连接信息,例如数据源、驱动类等。同时,也需要将你的Mapper接口文件...
这个提供的"mybatis调用存储过程源码"压缩包,包含了一个完整的MyBatis调用存储过程的示例,解压后可以直接运行,帮助开发者理解如何在实际项目中实现这一功能。详细注释可以帮助初学者更好地理解和学习这一过程。...
MyBatis作为一款流行的Java持久层框架,提供了调用存储过程的功能。下面将详细介绍如何在MyBatis中配置和使用存储过程。 ### 1. 配置MyBatis XML映射文件 在MyBatis的映射文件(mapper.xml)中,我们需要为存储...
当存储过程不返回任何结果时,我们只需在MyBatis的Mapper接口中定义一个无返回值的方法,并在对应的XML配置文件中编写调用存储过程的SQL语句。例如,`<select id="executeProcedure" statementType="CALLABLE">{...
以上就是使用Spring MVC和MyBatis调用MySQL存储过程的完整步骤。需要注意的是,对于复杂的存储过程,可能需要处理输入和输出参数,以及可能的异常情况。此外,还要考虑事务管理和性能优化等问题。通过这种方式,你...
然后,在对应的Mapper XML文件(`EmployeeMapper.xml`)中,编写调用存储过程的SQL语句: ```xml {call INSERT_EMPLOYEE(#{employeeId, mode=IN, jdbcType=NUMERIC}, #{firstName, mode=IN, jdbcType=VARCHAR}...
这个文档合集应该详细讲解了这些步骤和最佳实践,帮助开发者熟练掌握在Java中利用MyBatis调用MySQL存储过程和函数的技巧,从而更高效地进行数据库操作。通过深入学习和实践,开发者可以更好地理解这两者之间的交互,...
调用存储过程则使用`CALL`关键字: ```sql CALL sp_name([参数列表]); ``` 删除存储过程的命令是`DROP PROCEDURE`,需要注意的是,不能在一个存储过程中删除另一个存储过程。 MyBatis调用MySQL存储过程的实现通常...
在.NET开发环境中,IbatisNet是一个流行的持久层框架,它为开发者提供了灵活的数据访问机制,包括直接执行SQL语句和调用存储过程。本篇文章将深入探讨如何在IbatisNet中配置并使用存储过程。 首先,理解IbatisNet的...
总结起来,MyBatis调用存储过程提供了灵活性和效率,使得开发人员能够充分利用数据库提供的复杂功能,同时保持代码的整洁和可维护性。在实际项目中,正确理解和使用这些方法可以提高数据处理的效率和应用的性能。
ibatIS调用存储过程是数据库操作中常见的一种技术,特别是在复杂的业务逻辑处理或数据批量操作时,存储过程能够提供更高的效率和更好的性能。本文将深入探讨如何在ibatIS框架中调用存储过程,以及涉及到的相关知识点...
本文将详细介绍如何采用通用方法调用存储过程,帮助开发者提高数据库操作的效率和一致性。 1. **存储过程的基本概念** 存储过程是数据库中一组为了完成特定功能的SQL语句集,可以包含输入、输出参数,也可以有...
1. **调用存储过程的基本步骤:** - **建立连接**:通过`DriverManager.getConnection()`或使用连接池(如C3P0、HikariCP等)获取数据库连接。 - **创建CallableStatement**:使用`Connection.prepareCall()`...
2. **调用存储过程**:通过`CALL`关键字来执行存储过程。 3. **参数**:存储过程可以接受输入参数,输出参数,或者两者都有,用于传递数据到过程内部或从过程返回结果。 4. **返回值**:使用`RETURN`语句设置存储...
在IT行业中,数据库操作是不可或缺的一部分,而Java的JDBC(Java Database Connectivity)API则提供了与各种数据库交互的...通过阅读提供的博客链接,你将能获取更多关于JDBC调用存储过程和函数的实践经验及详细解释。
在这个项目中,我们结合了Spring框架、Ibatis持久层框架以及Blazeds技术,来演示如何调用存储过程并处理返回的结果集。下面将详细讲解这些技术的运用。 首先,J2EE是一种广泛用于开发分布式企业应用的平台,它提供...
MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs...
综上所述,Java调用存储过程涉及到JDBC API的使用,包括建立连接、创建CallableStatement、设置和获取参数、执行存储过程以及关闭资源。熟练掌握这些步骤对于进行数据库交互的Java开发至关重要。
"Mybatis学习(六)调用存储过程.docx"会涉及如何通过Mybatis调用数据库中的存储过程。Mybatis允许在Mapper XML文件中定义元素,传入参数并接收返回值。调用存储过程可以提高执行效率,尤其是在处理复杂逻辑或批量...
"IBatis查删改查与调用存储过程 mysql数据库" 这个标题揭示了本文将深入探讨如何使用IBatis框架在MySQL数据库中执行基本的CRUD(创建、读取、更新、删除)操作,以及如何调用存储过程。IBatis是一个轻量级的Java持久...