mybatis-如何调用存储过程

Mybatis调用Oracle存储过程,Oracle创建存储过程Mybatis调用procedure Mybatis调用Oracle存储过程,Oracle创建存储过程Mybatis调用procedure ================================ ©Copyright 蕃薯耀 2020-10-30 https://www.cnblogs.com/fanshuyao/ 一、Oracle创建存储过程 1、Oracle创建无参数的存储过程procedure --Oracle... 阅读详情

最近因为公司的需求,所以整理了一下mybatis调用存储过程的资料分享给大家。

1.创建存储过程 例如

存储过程中 in,out, in out 表示;

in 是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变。

out模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程

in out 表示高参数可以向该过程中传递值,也可以将某个值传出去

DROP PROCEDURE IF EXISTS `proc_adder`;

CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_adder`(IN a int, IN b int, OUT sum int)
BEGIN
    #Routine body goes here...
    DECLARE c int;
    if a is null then set a = 0; 
    end if;
  
    if b is null then set b = 0;
    end if;
    set sum  = a + b;
    select sum; #查询,返回sum结果集
END

2.存储过程写完之后就是与mybatis框架进行交接 

     给a 和 b 赋值 为 1 和 2 如果结果集 大于1就返回 0 给页面

/**
* @param request
* @param map
* @return
*/
@RequestMapping("getUserDeman")
@ResponseBody
public ModelMap getUserDeman(HttpServletRequest request, ModelMap map) {
Map<String, Object> maps = new HashMap<String, Object>();
maps.put("a", "1");
maps.put("b", "2");	
//存储过程
DxwCustomerInterview interview=dxwMonService.storedProcedure(maps);
System.out.println(interview.getSum());}
if (interview != null && interview.getTyp() > 1) 
{
map.put("data","0");
}
else
{
map.put("data","1");
}
return map;
}

  3.mybatis的xml 操作

<resultMap id="CustomerInterview" type="com.web.bean.dxw.DxwCustomerInterview" >
        <result column="sum" property="sum"/>
 </resultMap>  
call proc_adder 执行这个存储过程 
mode=IN a和b  说明 a和b 是传的参数; 
mode=OUT sum 说明 sum 可以返回的值; 
jdbcType=INTEGER 是对应数据库类型 与上面创建存储过程的类型一致
例如 :
IN a int 说明  jdbcType=INTEGER;
IN a varchar(50) 说明 jdbcType=VARCHAR;
resultMap="CustomerInterview";返回值的内容在这里

<select id="storedProcedure"  resultMap="CustomerInterview" parameterType="java.util.Map" statementType="CALLABLE">
	   {call hlj.customer_interview(
	    #{a,jdbcType=INTEGER,mode=IN},
	    #{b,jdbcType=INTEGER,mode=IN},
	    #{sum,jdbcType=INTEGER,mode=OUT}
	    )}
</select>  
发现其实和基本的 mybatis 数据库调用是一样的,只是赋值的时候多了一些参数配置


使用 MyBatis 注解方式调用存储过程 MyBatis 中,调用存储过程有两种常用方式:通过 XML 配置文件的方式和通过注解的方式。对于更简洁的开发风格,可以使用 MyBatis 注解方式来调用存储过程。本文将介绍如何使用 MyBatis 注解来调用存储过程。通过 MyBatis 注解调用存储过程是非常简便的,尤其是对于简单的存储过程调用。我们可以使用@Select@Update和@Insert等注解来执行存储过程,利用@Param注解传递参数,并结合@ResultMap进行结果映射。使用@Select@Insert@Update。 阅读详情

相关推荐

Springboot Mybatis 、JPA 调用存储过程,实战教程

mybatis 、JPA 调用存储过程

默默不代表沉默 3924

MyBatis 调用存储过程

项目结构 数据表t_user 创建User package com.po; public class User { private Integer id; private String name; private String sex; private Integer age; public Integer getId() { return id; } public void set...

京北游戏官方 1万+

MyBatis调用MySQL存储过程的详细指南

在数据库管理系统中,存储过程是一组为了完成特定功能的SQL语句集,它们经过编译后被存储在数据库中,可以通过指定的名称来调用执行。存储过程可以接受输入参数,并可返回输出参数和结果集,使得数据操作更加模块化和可重用。MyBatis是一个半自动化的持久层框架,其优势在于对SQL的灵活掌握和轻量级操作。与JDBC相比,MyBatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的工作。

weixin_29476595的博客 1159

Mybatis如何调用存储过程

介绍Mybatis调用存储过程

qq_53437454的博客 1万+

MyBatis实践笔记(2):调用存储过程

一、MyBatis调用存储过程   MyBatis调用存储过程的方式,和普通的select查询方式用法相同,都可以接收方法入参(parameterType = String | Object | Map)、和方法返回值(resultType |resultMap)。   在mapper.xml文件中,定义存储过程时,有一点不同的是需要增加一项设置:statementType=“CALLABL...

weixin_34216036的博客 1035

MyBatis调用存储过程与存储函数

1、MyBatis调用存储过程 MyBatis支持使用存储过程的配置。当使用存储过程时,需要设置一个参数“mode”,其值有IN(输入参数)、OUT(输出参数)和INOUT(输入/输出参数)。MyBatis定义存储过程如下: <!-- 存储过程 --> <select id="selectSomeThing" statementType="CALLABLE" paramet...

pan_junbiao的博客 7692

MyBatis调用oracle存储过程

前言 存储过程书写要规范(IN 、OUT 参数一定要写上,例如:v_siteNo IN VARCHAR2),不然JAVA调用有问题,拿不到存储过程返回值 存储过程ONE create or replace procedure P_GetToken(v_siteNo IN VARCHAR2, tv OUT var...

thebigdipperbdx的博客 9785

mybatis调用存储过程

MyBatis调用存储过程的方式,和普通的select查询方式用法相同,都可以接收方法入参(parameterType = String | Object | Map)、和方法返回值(resultType | resultMap)。--注意,在mapper-select节点配置时,需要增加一项设置:statementType=“CALLABLE",以表明这是一个存储过程 -->VALUES ('123456','京东金融','渐渐老了','100');//编写调用存储过程的DAO。//客户端调用存储过程

HakuMaster的博客 8560

mybatis 调用postgresql 存储过程

之前在调用postgresql的存储过程时,还是使用传统的方法,没有充分利用mybatis框架,代码如下所示: @Override public String getBinById(String id) { String name = null; Connection conn = null; try { conn = dataSource.getConnection(); CallableState

浦江之猿的博客 3969

如何使用mybatis调用存储过程

如何使用mybatis调用存储过程 先提供一个秒杀逻辑(https://github.com/cdefgab1234/seckill)的存储过程--秒杀执行存储过程 DELIMITER $$ -- 运行第二次,这是为了能多次运行 DROP PROCEDURE IF EXISTS `execute_seckill`$$ -- 参数: in 输入参数; out 输出参数 -- row_coun

小秋蜀黍的博客 2万+

MyBatis如何调用Mysql存储过程

文章目录数据库相关代码相关 阿里规约中不推荐使用存储过程。本文目的仅在于学习MyBatis如何调用存储过程。 本文以添加部门为例。 数据库相关 表结构 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lYDHAALJ-1594201041199)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200707113754574.png)] 添加部门的函数addDep()

臭小子的博客 1505

MyBatis调用存储过程MyBatis调用函数的使用方法

MyBatis调用存储过程MyBatis调用函数的使用方法 一、MyBatis 调用存储过程 1、不带参数的 <select id="batchAnalyzeAll" statementType="CALLABLE" useCache="false"> call pro_rank_sum_all() </select> ...

HaHa_Sir的博客 8611

Mybatis调用存储过程

Mybatis 是 iBatis 被 Google 收购后重新命名的一个工程,当然也做了大量的升级。iBatis 2.x 调用存储过程有一个专门的标签 ,在 Mybatis 3.x 里面已经没有这个标签了,而是通过一个参数 statementType="CALLABLE" 来区分。  存储过程有三种类型的参数,分别为 IN(输入参数),OUT(输出参数),INOUT(输入输出

我是IT小菜鸟的博客 2469

Mybatis中如何调用存储过程

下面就用一个例子来测试Mybatis调用存储过程,并进行分页的例子: 使用的是oracle数据库 1 存储过程代码如下: create or replace procedure test_page( page_start in int,page_end in int,page_count out int, page_emps out sys_refcursor) as b...

刘信坚的博客 1万+

MyBatis 调用存储过程(详解)

项目结构 数据表t_user 创建User package com.po; public class User { private Integer id; private String name; private String sex; private Integer age; public Integer getId() { return id; } publi...

14万+
上一篇: mysql-去除重复数据并且添加
下一篇: java-微信小程序得到用户信息
故事说到这里
博客等级 码龄10年 30粉丝 26原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值