`

mybatis调用mysql存储过程

阅读更多
mybatis调用mysql存储过程

1.mybastis的配置
<select id="grabRedPacketProcedure" parameterMap="paramMap" statementType="CALLABLE">
    call grabRedPacketProcedure(?,?,?)
    </select>
   
    <parameterMap type="java.util.Map" id="paramMap">
    <parameter property="redPacketId" mode="IN" javaType="INTEGER"/>
    <parameter property="userId" mode="IN" javaType="INTEGER"/>
    <parameter property="num" mode="OUT" javaType="INTEGER" jdbcType="INTEGER"/>
    </parameterMap>

2.mapper
@Mapper
public interface RedPacketMapper {

public int insertRedPacketUser(RedPacketUserPO po);

//调用存储过程
public void grabRedPacketProcedure(Map<String, Integer> map);
}
   
3.mysql存储过程
delimiter //
DROP PROCEDURE IF EXISTS grabRedPacketProcedure
//
create PROCEDURE grabRedPacketProcedure(IN red_packet_id INTEGER,IN user_id INTEGER,OUT num INTEGER)
begin
declare total int;
set num = -1;
select stock into total from red_packet where id = red_packet_id;
if total > 0 then
start transaction;
update red_packet set stock=stock-1 where id = red_packet_id;
insert into red_packet_user(red_packet_id,user_id,amount) values (red_packet_id,user_id,5);
commit;
set num = 1;
end if;
end
//
DELIMITER ;

存储过程测试:
DELIMITER //
set @num=0;
call grabRedPacketProcedure(1,1,@num);
select @num;
//
DELIMITER ;
4.存储过程的调用
public int grapRedPacketProc(Integer redPacketId, Integer userId) {
int num = -1;
Map<String,Integer> map = new HashMap<String, Integer>();
redPacketMapper.grabRedPacketProcedure(map);
if(map.containsKey("num")) {
num = map.get("num");
}
return num;
}
分享到:
评论

相关推荐

    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-...

    spring mvc + mybatis 调用mysql 存储过程

    以上就是使用Spring MVC和MyBatis调用MySQL存储过程的完整步骤。需要注意的是,对于复杂的存储过程,可能需要处理输入和输出参数,以及可能的异常情况。此外,还要考虑事务管理和性能优化等问题。通过这种方式,你...

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

    这个文档合集应该详细讲解了这些步骤和最佳实践,帮助开发者熟练掌握在Java中利用MyBatis调用MySQL存储过程和函数的技巧,从而更高效地进行数据库操作。通过深入学习和实践,开发者可以更好地理解这两者之间的交互,...

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

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

    Java调用存储过程--传入集合参数

    ### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...

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

    "Mybatis调用Oracle存储过程传List参数解决方法" Mybatis是当前最流行的持久层框架之一,它提供了强大的数据访问和操作功能。但是,如何将List类型参数传递给Oracle存储过程,实现批量插入数据却是一个棘手的问题,...

    Mybatis应用mysql存储过程查询数据实例

    二、Mybatis调用mysql存储过程 在Mybatis中,可以使用{@code &lt;select&gt;}标签来调用mysql存储过程。以下是一个简单的示例: ```xml CALL searchAllList( #{tradingAreaId, jdbcType=VARCHAR}, #{categoryName,...

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

    标题 "maven+SpringMVC+Spring+Mybatis图片上传本地以及显示+调用Mysql存储过程" 描述了一个基于Java技术栈的Web应用程序开发案例,涵盖了四个关键技术和数据库操作。下面将对这些技术及其相互作用进行详细阐述。 1...

    Mybatis调用视图和存储过程的方法

    MyBatis,作为一款强大的持久层框架,提供了一系列高级特性,包括对普通SQL查询、视图查询以及存储过程的调用。本篇文章将详细介绍如何在MyBatis中调用视图和存储过程。 一、调用视图 视图在数据库中是一种虚拟表...

    mybatis,mybatis+mysql

    4. **调用存储过程**:MyBatis也支持调用MySQL的存储过程。在XML映射文件中,你可以使用`&lt;select id="callProcedure" parameterType="map" resultType="map"&gt;`标签来调用存储过程,参数和结果可以通过Map对象传递。 ...

    Spring+Mybatis+mysql简单的Student增删改查

    总结起来,这个项目涵盖了Web开发中的后端基础,通过Spring MVC处理请求,MyBatis进行数据操作,MySQL存储数据。对于初学者来说,理解并实践这个项目有助于掌握Java Web开发的基本流程和技术栈,为进一步深入学习...

    SpringBoot+Mybatis+mysql

    **Mybatis** 是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。Mybatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的...

    MyBatis调用Procedure+Function.pptx

    使用MyBatis框架配置Oracle和MySql中存储过程与函数的调用。 分别描述了两种方式的实现:基于XML方式和注解方式。 其中Oracle所使用版本为Oracle11g_XE版,MySQL为5.7版本

    MySql存储过程以及MyBatis3

    MySQL存储过程和MyBatis3是数据库管理和Java开发中的两个重要概念。MySQL是世界上最流行的开源关系型数据库管理系统,而MyBatis则是一个优秀的持久层框架,它简化了Java应用程序与数据库之间的交互。在这个主题中,...

    mybatis+mysql驱动.rar

    MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的...

    Maven+SpringBoot+MyBatis+MySQL实现增删改查源码

    在本项目中,MySQL将存储和管理数据,SpringBoot通过JPA(Java Persistence API)和MyBatis与之交互。你需要在`application.properties`中配置MySQL的连接信息,如数据库URL、用户名、密码等。 在项目结构方面,...

    spring+mybatis+mysql实现的用户登录功能

    3. **Spring配置**:设置Spring MVC控制器,接收并处理登录请求,调用MyBatis的Mapper方法查询数据库。 4. **安全验证**:使用Spring Security配置用户认证,比较输入的密码与数据库中存储的哈希值,进行登录验证。 ...

    mybatis+mysql 使用存储过程生成流水号的实现代码

    本篇文章将深入探讨如何在MyBatis框架中结合MySQL存储过程来生成流水号。 首先,存储过程`GetSerialNo`接受一个输入参数`tsCode`,类型为VARCHAR(50),并返回一个VARCHAR(200)类型的`result`。该过程的主要目的是为...

    Spring Boot + MyBatis + MySQL

    MyBatis 是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis 可以使你更好地控制SQL编写过程,同时提供了强大的动态SQL支持...

Global site tag (gtag.js) - Google Analytics