相关文章推荐

在 SSM 框架中,需要调用存储过程,与平常的 Dao 接口调用相比,调用存储过程有什么变化呢?
在我的例子中,框架是已经搭建好的,这里只是展示 Dao 层和 mapper 中的配置。

mapper 文件中的 SQL 配置如下:

<select id="callWorkflow" parameterType="map" statementType="CALLABLE">
            call SP_WORKFLOW(
                  #{pteNo,mode=IN,jdbcType=VARCHAR},
                  #{busType,mode=IN,jdbcType=VARCHAR},
                  #{operate,mode=IN,jdbcType=VARCHAR},
                  #{errCode,mode=OUT,jdbcType=VARCHAR},
                  #{errMsg,mode=OUT,jdbcType=VARCHAR}
</select>

Dao层的接口定义如下:

Map<String,Object> callWorkflow(Map<String, Object> map);

存储过程定义的如下:

CREATE OR REPLACE PROCEDURE "SP_WORKFLOW"(
    PTE_NO VARCHAR2, 
    BUS_TYPE VARCHAR2,
    operate varchar2,
    ERR_CODE OUT VARCHAR2,
    ERR_MSG OUT VARCHAR2)
在Mybatis输入参数parameterType有两种类型,分别是简单类型和对象类型。表达方式也分两种,分别是#{} 和 ${}。
#{}自动给String类型加上’’(自动类型转换)
${}原样输出,但是适合于 动态排序(动态字段),如果输入类型是String类型,需要在外部加单引号
简单类型(8个基本类型+Sring)使用#{}表示时可以在{}里面写任意值,使用${}表示时{}里...
				
笔者所在项目需要一个统计本机构近6月收入情况(分两种)、本机构下级机构收入情况的需求,数据量为百万级。 具体需求是时间、机构都不确定,可为入参。 综合考虑后决定使用后台存储过程统计。 基础表结构如下:(本功能只用到红框部分) 1.创建用于返回数据的游标: create or replace package clf_yxfx type type_cursor is re...
需求:本系统接收第三方系统发送过来的告警,当系统里面没有该告警时,新写出一条告警到alerttab,当有该告警时,将alerttab对应的告警信息写入alerthistab,告警表对应的该条信息删除.有该告警的时候,如果告警级别升高.则修改告警信息.1.创建存储过程DELIMITER $$ drop PROCEDURE if exists AlertMapping; CREATE PROCEDUR...
public String[] updateStatus(ReceiveEntity receiveEntity){ String id = super.save(receiveEntity); Map&lt;String,Object&gt; map = new HashMap&lt;S...
最近项目要用Sybase数据库实现分页,第一次使用Sybase数据库,也是第一次使用他的存储过程。2个多小时才调用成功,在此记录: 项目架构:SSM 1、Sybase本身不支持分页操作,需要写存储过程调用,这是很坑的。存储过程的内容暂且放下, 存储过程名:query_xxx_record_detail 输入输出参数如下:9个输入,5个输出 --input @terminal_no ...
Source Server : localMysql Source Server Version : 50628 Source Host : 127.0.0.1:3306 Source Database : testmysql Target Server Type
 
推荐文章