如何使用Mybaits调用数据库中的存储过程,下面以Oracle数据库的为例:
1.在数据库中创建以下的存储过程:
java代码:
- create or replace procedure pro_hello(p_user_name in varchar2,p_result out varchar2) is
- begin
-
p_result := 'hello,' || p_user_name;
- end;
create or replace procedure pro_hello(p_user_name in varchar2,p_result out varchar2) is
begin
p_result := 'hello,' || p_user_name;
end;
2.编写SQL映射文件mapper.xml:
java代码:
- <select id="proHello" statementType="CALLABLE">
- <![CDATA[
- {call pro_hello (#{p_user_name,mode=IN,jdbcType=VARCHAR},#{result,mode=OUT,jdbcType=VARCHAR})}
- ]]>
- </select>
<select id="proHello" statementType="CALLABLE">
<![CDATA[
{call pro_hello (#{p_user_name,mode=IN,jdbcType=VARCHAR},#{result,mode=OUT,jdbcType=VARCHAR})}
]]>
</select>
3.编写JAVA代码调用存储过程
java代码:
- public class ProcedureTest {
-
-
public static void main(String[] args) throws IOException {
-
String resource = "mybatis.cfg.xml";
- Reader reader = Resources.getResourceAsReader(resource);
-
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
-
- SqlSession session = ssf.openSession();
-
-
try {
-
Map<String, String> param = new HashMap<String, String>();
-
param.put("p_user_name", "zhangsan");
-
String returnValue = (String) session.selectOne("User.proHello", param);
-
System.out.println("message=" + param.get("p_user_name"));
-
System.out.println("result=" + param.get("result"));
-
System.out.println("returnValue=" + returnValue);
-
-
} catch (Exception e) {
- e.printStackTrace();
-
} finally {
- session.close();
- }
- }
- }
public class ProcedureTest {
public static void main(String[] args) throws IOException {
String resource = "mybatis.cfg.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = ssf.openSession();
try {
Map<String, String> param = new HashMap<String, String>();
param.put("p_user_name", "zhangsan");
String returnValue = (String) session.selectOne("User.proHello", param);
System.out.println("message=" + param.get("p_user_name"));
System.out.println("result=" + param.get("result"));
System.out.println("returnValue=" + returnValue);
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
}
}
4.执行Java代码,控制台输出结果如下:
java代码:
- 2012-03-07 20:36:32,406 DEBUG [java.sql.PreparedStatement] -==> Executing: {call pro_hello(?,?)}
-
2012-03-07 20:36:32,406 DEBUG [java.sql.PreparedStatement] -==> Parameters: zhangsan(String)
- message=zhangsan
===============
有返回值时:
<!-- call procedure parameter -->
<parameterMap id="parameterMap" type="java.util.HashMap">
<parameter property="result" jdbcType="CURSOR" javaType="java.sql.ResultSet" mode="OUT" />
<parameter property="TesterCode" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
<parameter property="Pwd" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
</parameterMap>
<select id="getTesterByCodeAndPwd" parameterMap="parameterMap" statementType="CALLABLE" resultMap="userResultMap">
{? = call pkg_gettesterbycodeandpwd.proc_gettesterbycodeandpwd(?, ?)}
</select>
</mapper>
本文转载自linux安全网,代返回值自己后加的。
分享到:
相关推荐
以下是关于Pb调用存储过程以及存储过程创建的详细知识: 首先,`Pb调用存储过程`通常是通过Database窗口或者DataWindow对象来实现的。在Pb中,我们可以通过以下步骤调用存储过程: 1. **声明存储过程**:在Pb的...
hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程
### C#调用Oracle方法(包括调用存储过程) 在.NET框架中,使用C#语言进行数据库操作是一项常见的任务。本文将详细介绍如何使用C#语言连接Oracle数据库,并演示如何调用Oracle存储过程,特别是带有输出参数的情况。...
### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...
本文实例讲述了C#调用存储过程的方法。分享给大家供大家参考,具体如下: CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @studentname nvarchar(50) OUTPUT AS BEGIN SELECT @studentname=...
内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...
本文将深入探讨如何使用SqlHelper调用存储过程,包括存储过程的基础概念、SqlHelper的基本用法以及具体步骤,以帮助开发者更高效地进行数据库操作。 一、存储过程基础 存储过程是预编译的SQL语句集合,存储在数据库...
在IT领域,特别是数据库操作与Java编程的交集部分,调用存储过程是常见的需求之一。根据提供的文件信息,我们可以深入解析如何在Java中通过JDBC(Java Database Connectivity)调用Oracle数据库的存储过程。 ### ...
Java 调用存储过程小结 Java 调用存储过程是指在 Java 程序中调用数据库中的存储过程,以便实现复杂的业务逻辑和数据处理。存储过程是指保存在数据库并在数据库端执行的程序,可以使用特殊的语法在 Java 类中调用...
### VB6.0调用存储过程的例子(方法一) 在Visual Basic 6.0中,调用数据库中的存储过程是一项非常实用的功能。本篇将详细解释一个具体的示例,通过VB6.0来调用一个名为`ADOTestRPE`的存储过程,并测试其返回值、...
"Oracle触发器调用存储过程" Oracle触发器可以调用存储过程,以实现业务逻辑的自动化执行。然而,在触发器中调用存储过程时,需要注意事务的隔离性,以避免出现锁定和死锁的问题。Oracle自治事务(Autonomous ...
在调用存储过程时,我们需要利用MyBatis提供的API和配置机制来实现。 1. **配置MyBatis**:在`mybatis-config.xml`配置文件中,你需要添加数据库连接信息,例如数据源、驱动类等。同时,也需要将你的Mapper接口文件...
在C++环境下,使用ADO(ActiveX Data Objects)技术调用存储过程是一种常见的数据库编程操作。存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。存储过程可以通过参数接收输入值,并可返回输出...
- 如果连接成功,则通过`ADOStoredProc1`组件调用存储过程`pkg_test.get`。 - 创建输入参数`p1`,并为其赋值1。 - 最后,执行存储过程。 通过以上步骤,我们可以在Delphi中成功调用Oracle的存储过程,并获取其...
本文将详细讲解如何使用JDBC来调用存储过程,以实现数据的增删改查操作。 首先,理解存储过程是数据库中的一个重要概念。存储过程是一组预先编译好的SQL语句集合,它可以包含控制流语句、输入/输出参数,甚至可以有...
java调用存储过程,支持获取return值,output返回值,以及查询的表数据,表数据允许有多个查询结果集
在Hibernate中,调用存储过程通常通过Session对象的createNativeQuery()方法实现,这个方法用于创建原生SQL查询,可以方便地调用数据库的自定义SQL或者存储过程。以下是一个简单的示例,展示了如何调用一个不带参数...
下面将详细介绍在Java中如何调用存储过程,并探讨其相关的知识点。 1. **存储过程的概念**: 存储过程是一种数据库对象,由一系列的SQL语句和控制结构组成。它们在数据库服务器上预先编译,当需要执行时,只需调用...
本篇将详细介绍`jsp`调用存储过程的相关知识点,并提供丰富的案例资源。 一、JSP调用存储过程的基本原理 `jsp`是一种基于Java的动态网页技术,可以嵌入Java代码,处理服务器端的逻辑。存储过程是预编译的SQL语句...
以下是一个基本的调用存储过程的步骤: 1. 导入所需的JDBC库,如`java.sql.*`。 2. 创建数据库连接,使用`DriverManager.getConnection()`方法。 3. 准备Statement或CallableStatement对象。对于存储过程,我们通常...