`

Mybatis使用篇之七:存储过程调用

阅读更多

 

 

如何使用Mybaits调用数据库中的存储过程,下面以Oracle数据库的为例:

 

1.在数据库中创建以下的存储过程:

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

<select id="proHello" statementType="CALLABLE">

<![CDATA[

    {call pro_hello (#{p_user_name,mode=IN,jdbcType=VARCHAR},#{result,mode=OUT,jdbcType=VARCHAR})}

]]>

</select>

 

3.编写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();

          }

       }

}

 

4.执行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

 

2
0
分享到:
评论
1 楼 Jacarri_Chan 2012-08-06  
如果是返回结果集呢?请问如何操作??

相关推荐

    mybatis调用储存过程

    在调用存储过程时,我们需要利用MyBatis提供的API和配置机制来实现。 1. **配置MyBatis**:在`mybatis-config.xml`配置文件中,你需要添加数据库连接信息,例如数据源、驱动类等。同时,也需要将你的Mapper接口文件...

    MyBatis调用存储过程

    MyBatis作为一款流行的Java持久层框架,提供了调用存储过程的功能。下面将详细介绍如何在MyBatis中配置和使用存储过程。 ### 1. 配置MyBatis XML映射文件 在MyBatis的映射文件(mapper.xml)中,我们需要为存储...

    mybatis调用存储过程

    MyBatis作为一款流行的Java持久层框架,它提供了调用存储过程的功能,使得开发者能够方便地在Java应用中利用数据库的存储过程。下面将详细介绍如何在MyBatis中调用存储过程以及相关的知识点。 1. MyBatis概述 ...

    springboot mybatis 动态调用oracle存储过程,通过存储过程名称,就能动态调用存储过程、java动态调用or

    能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来...只根据输入不同的存储过程名称、参数内容,自动调用不同的存储过程。 已经使用在多个项目中 全开源项目 请放心下载

    springboot整合mybatis调用oracle存储过程

    本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理游标返回的数据。 首先,我们需要在Spring Boot项目中引入相关的依赖。在`pom.xml`文件中添加Oracle JDBC驱动(ojdbc66-oracle...

    mybatis调用orclae存储过程

    下面将详细介绍如何使用MyBatis来调用Oracle存储过程。 ### 1. 创建Oracle存储过程 首先,我们需要在Oracle数据库中创建一个存储过程。例如,假设我们有一个名为`INSERT_EMPLOYEE`的存储过程,用于插入新的员工...

    spring mybatis 调用oracle存储过程

    本文将深入探讨如何在Spring和MyBatis集成环境中调用Oracle数据库的存储过程,包括无返回值、返回结果集以及返回多个结果的情况。 首先,让我们理解基础概念。Spring是一个全面的后端开发框架,它提供了依赖注入、...

    mybatis调用mysql存储过程

    本篇将详细阐述如何使用MyBatis调用MySQL中的存储过程,帮助你深入理解这一核心技能。 首先,我们需要了解存储过程的基本概念。存储过程是预编译的SQL语句集合,它封装了多个操作,可以在数据库服务器上执行,提高...

    mybatis调用存储过程源码

    注意,虽然存储过程通常与`insert`, `update`, 或 `delete`关联,但在MyBatis中,调用存储过程需要使用`select`标签。设置`useGeneratedKeys`和`keyProperty`用于获取输出参数: ```xml { call calculate_...

    spring mvc + mybatis 调用mysql 存储过程

    这里,我们将使用MyBatis的SqlSession对象,通过Mapper接口来调用存储过程。 1. 配置MyBatis: 在Spring MVC项目中,你需要配置MyBatis与Spring的整合,这通常涉及到`mybatis-config.xml`,`sqlSessionFactory`和`...

    MyBatis调用MYSQL存储过程

    MyBatis调用MYSQL存储过程 返回多行 引用的包: asm-3.1.jar cglib-2.2.jar commons-logging-1.1.1.jar log4j-1.2.13.jar mybatis-3.0.4.jar mysql-connector-java-5.1.13.jar slf4j-api-1.5.8.jar slf4j-log4j12-...

    Mybatis传list参数调用oracle存储过程的解决方法

    "Mybatis调用Oracle存储过程传List...使用Mybatis传List参数调用Oracle存储过程,可以实现批量插入数据,解决了Mybatis批量插入数据的限制问题。同时,这种方法也可以灵活地控制事务回滚,提高了系统的可靠性和性能。

    《手写Mybatis》第4章:Mapper XML的解析和注册使用.doc

    《手写Mybatis》第4章深入探讨了Mapper XML的解析和注册使用,这是Mybatis框架的核心部分,它涉及到如何将XML配置文件转换为可执行的数据库操作。本章主要目标是实现对Mapper XML文件的解析,提取SQL信息,并创建...

    JAVA通过MyBatis调用MySql存储过程和函数doc文档合集整理.zip

    本合集主要探讨如何在Java中利用MyBatis来调用MySQL的存储过程和函数。 1. **存储过程和函数的基本概念** - 存储过程:是一组预先编译的SQL语句,可以包含输入、输出参数,能够执行复杂的数据库操作。 - 函数:与...

    Mybatis调用Oracle存储过程的方法图文详解

    那么,如何使用Mybatis调用Oracle存储过程呢?本文将详细介绍Mybatis调用Oracle存储过程的方法。 无参数存储过程的调用 首先,需要创建一个无参数的存储过程。例如,创建一个名为`proc_no_param`的存储过程,用于...

    Mybatis调用PostgreSQL存储过程实现数组入参传递

    在本文中,我们将探讨如何在Mybatis框架中调用PostgreSQL的存储过程,特别是处理 PostgreSQL 的数组类型作为存储过程的输入参数。Mybatis是一个流行的Java持久层框架,它允许开发者编写SQL语句,并与Java对象进行...

    【狂神说】mybatis学习总结笔记(全)PDF格式文档 MyBatis.pdf

    MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和Java POJO...

    Mybatis调用MySQL存储过程的简单实现

    本文将详细介绍如何使用MyBatis调用MySQL存储过程,以及存储过程的相关概念、优缺点和基本语法。 首先,存储过程是数据库中预编译的一组SQL语句,它可以包含控制流语句,以实现更复杂的业务逻辑。存储过程的创建和...

    maven+SpringMVC+Spring+Mybatis图片上传本地以及显示+调用存储过程

    本项目采用的是经典的Java EE技术栈:Maven、SpringMVC、Spring和Mybatis,来实现这一功能,同时包含了调用数据库存储过程的操作。以下是关于这个项目的关键知识点的详细说明: 1. Maven:Maven是一个项目管理工具...

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

Global site tag (gtag.js) - Google Analytics