`
『抹·茶』
  • 浏览: 6792 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

mybatis调用Oracle存储过程

阅读更多

1.创建Oracle存储过程完成库存加减操作,如果按equipType1和equipType2查询记录存在,则在原数量基础上进行增减;如果查询记录不存在,则新增一条记录。

存储过程创建如下:

 

CREATE OR REPLACE 
PROCEDURE "UPDATE_EQUIPMENT_STOCK" (P_EQUIP_TYPE1 IN NUMBER, P_EQUIP_TYPE2 IN NUMBER, P_NUM IN NUMBER, P_STATION_ID IN NUMBER, P_RESULT OUT NUMBER)
AS
STOCK_NUM NUMBER DEFAULT 0;
E_COUNT NUMBER DEFAULT 0;
BEGIN
SELECT COUNT(ID) INTO E_COUNT from EQUIPMENT_STOCK WHERE EQUIP_TYPE1=P_EQUIP_TYPE1 AND EQUIP_TYPE2=P_EQUIP_TYPE2;
IF (E_COUNT > 0) THEN
SELECT E_STOCK INTO STOCK_NUM from EQUIPMENT_STOCK WHERE EQUIP_TYPE1=P_EQUIP_TYPE1 AND EQUIP_TYPE2=P_EQUIP_TYPE2;
STOCK_NUM := STOCK_NUM + P_NUM;
UPDATE EQUIPMENT_STOCK SET E_STOCK=STOCK_NUM WHERE EQUIP_TYPE1=P_EQUIP_TYPE1 AND EQUIP_TYPE2=P_EQUIP_TYPE2;
--UPDATE
ELSE
STOCK_NUM:=P_NUM;
INSERT INTO EQUIPMENT_STOCK(ID,EQUIP_TYPE1,EQUIP_TYPE2,E_STOCK,STATION_ID) 
VALUES(SEQ_EQUIPMENT_STOCK.NEXTVAL,P_EQUIP_TYPE1,P_EQUIP_TYPE2,STOCK_NUM,P_STATION_ID);
--INSERT
END IF;
P_RESULT:=1;
END;

 mybatis调用

Mapper.xml

 

<select id="updateEquipmentStock" parameterType="java.util.Map" statementType="CALLABLE">
		{call UPDATE_EQUIPMENT_STOCK (#{equipType1,mode=IN,jdbcType=INTEGER},
			#{equipType2,mode=IN,jdbcType=INTEGER},
			#{pNum,mode=IN,jdbcType=INTEGER},
			#{stationId,mode=IN,jdbcType=INTEGER},#{p_result,mode=OUT,jdbcType=INTEGER})}
</select>

 Mapper.java

public Integer updateEquipmentStock(Map<String, Object> paramMap);

 Dao

public Integer updateEquipmentStock(Map<String, Object> paramMap) {
		// TODO Auto-generated method stub
		return equipmentStockMapper.updateEquipmentStock(paramMap);
	}

 Service

public Integer updateEquipmentStock(Long equipType1, Long equipType2, Integer pNum,
			Long stationId) {
		Map<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put("equipType1", equipType1);
		paramMap.put("equipType2", equipType2);
		paramMap.put("pNum", pNum);
		paramMap.put("stationId", stationId);
		paramMap.put("p_result", -1);
		equipmentStockDAO.updateEquipmentStock(paramMap);
		return (Integer)paramMap.get("p_result");
	}

 自己搜索资料编写,可用。

PS:pNum参数使用正负数完成库存的增减

 

分享到:
评论

相关推荐

    springboot整合mybatis调用oracle存储过程

    至此,我们就完成了Spring Boot整合MyBatis调用Oracle存储过程并处理游标返回数据的过程。在实际开发中,可以根据需求调整存储过程的逻辑和结果处理方式,以满足各种复杂业务场景。注意,对于大数据量的查询,使用...

    spring mybatis 调用oracle存储过程

    通过以上步骤,开发者可以在Spring和MyBatis环境中顺利地调用Oracle存储过程,实现复杂业务逻辑的处理。这不仅可以提高代码的可维护性,还能利用数据库的优势来优化性能。在进行这类操作时,一定要注意参数类型、...

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

    Mybatis调用Oracle存储过程的方法详解 Mybatis是一款流行的持久层框架,广泛应用于Java企业级应用开发中。 Oracle存储过程是一种高效的数据库操作方式,通过存储过程可以实现复杂的业务逻辑操作。那么,如何使用...

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

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

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

    mybatis调用Oracle存储过程(无参、有入出参)等各种情况例子的详细使用方法

    mybatis调用Oracle存储过程(无参、有入出参)等各种情况例子的详细使用方法 1.无参存储过程调用 2.入参存储过程调用 3.出参存储过程调用 4.入 和 出 参存储过程调用,以及获取出参结果 5.结果集存储过程调用

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

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

    mybatis调用orclae存储过程

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

    MyBatis下调用存储过程并返回复杂结果集.docx

    MyBatis 调用 Oracle 存储过程返回复杂结果集 MyBatis 是一种基于 Java 的持久层框架,提供了对数据库的交互操作。然而,在 MyBatis 的官方文档中,并没有对如何调用 Oracle 存储过程的介绍,导致了网络上的资料...

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

    总结起来,Mybatis调用PostgreSQL存储过程并处理数组参数的关键步骤包括: 1. 在PostgreSQL中创建带有数组参数的存储过程。 2. 自定义一个TypeHandler,实现对数组类型的转换。 3. 在Mybatis的Mapper XML中配置`...

    Springboot调用Oracle存储过程的几种方式.docx

    在Spring Boot应用中,调用Oracle数据库的存储过程有多种方式。本文主要介绍三种方法,包括使用`entityManagerFactory.unwrap(SessionFactory.class).openSession()`、直接使用`EntityManager`的`...

    MyBatis调用存储过程

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

    ibatis调用oracle存储过程

    在IT领域,特别是数据库操作与Java开发中,利用ibatis框架调用Oracle存储过程是一个常见的需求,这不仅能够提升代码的执行效率,还能增强应用程序的安全性。本文将深入解析ibatis如何与Oracle数据库中的存储过程进行...

    Java调用oracle存储过程通过游标返回临时表

    本篇文章将深入探讨如何使用Java调用Oracle存储过程,并通过游标获取存储过程中返回的临时表数据。 首先,Oracle存储过程是一种在数据库端执行的预编译SQL语句和PL/SQL代码集合。它可以接收参数、执行业务逻辑并...

    Java调用Oracle存储过程的方法

    本文将详细讲解如何使用Java调用Oracle存储过程,并提供示例代码。 首先,我们需要了解Java中用于与数据库交互的核心类,包括`java.sql.Connection`、`java.sql.CallableStatement`和`java.sql.Types`。`Connection...

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

    通过本文的探讨,我们不仅了解了如何在Java中调用Oracle存储过程并传递集合参数的基本原理,还深入实践了相关的技术细节。这对于构建高性能、高可靠性的企业级应用而言,是不可或缺的知识点。在未来,随着数据量的...

    mybatis 整合oracle (含增删改查)

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。在实际开发中,将 MyBatis 整合到 Oracle 数据库进行数据操作,包括增删改查,是常见的需求。以下将详细介绍这个过程。 1. **环境准备**...

    MyBatis调用Procedure+Function.pptx

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

    mybatis连接Oracle所用的jar包

    MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。在使用MyBatis与Oracle数据库进行交互时,通常需要一些特定的库来确保连接和操作的顺利进行。这里提到的两个jar包,"ojdbc6.jar"和...

Global site tag (gtag.js) - Google Analytics