`

mybatis 调用存在过程

 
阅读更多
mybatis 调用存在过程{ call proc_saveamt_grant(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) }

Serivice
SAICDao.insertTsaveamt(tsaveamt);

根据mybatis 的 配置。返回的值自动保存在tsaveamt
DAO
void insertTemploydcmSQ(Tmember tmember)throws SQLException;




引用
<select id="insertTsaveamt" parameterType="cn.com.mmm.customer.domain.Tsaveamt" statementType="CALLABLE"  >
{call  proc_saveamt_grant(#{memb_no},#{proc_gb},#{proc_yn},#{order_no},#{order_g_seq},#{order_d_seq},#{order_w_seq},#{saveamt_gb},#{saveamt_gb}
,#{saveamt},#{save_note},#{expire_date,jdbcType=TIMESTAMP},#{proc_id},#{c_code},'',#{rtnCode,mode=OUT,jdbcType=VARCHAR},#{rtnNo,mode=OUT,jdbcType=INTEGER},#{rtnMsg,mode=OUT,jdbcType=VARCHAR})}
</select>



引用
CREATE OR REPLACE PROCEDURE MMM.PROC_SAVEAMT_GRANT(
V_MMM_CUST_NO IN TSAVEAMT_MMM.MEMB_NO%TYPE
, V_MMM_PROC_GB_MMM IN TSAVEAMT_MMM.PROC_GB%TYPE
, V_MMM_PROC_YN IN TSAVEAMT_MMM.PROC_YN%TYPE
, V_MMM_ORDER_NO IN TSAVEAMT_MMM.ORDER_NO%TYPE
, V_MMM_ORDER_G_MMM_SEQ IN TSAVEAMT_MMM.ORDER_G_MMM_SEQ%TYPE
, V_MMM_ORDER_D_MMM_SEQ IN TSAVEAMT_MMM.ORDER_D_MMM_SEQ%TYPE
, V_MMM_ORDER_W_MMM_SEQ IN TSAVEAMT_MMM.ORDER_W_MMM_SEQ%TYPE
, V_MMM_SAVEAMT_GB IN TSAVEAMT_MMM.SAVEAMT_GB%TYPE
, V_MMM_SAVEAMT_CODE IN TSAVEAMT_MMM.SAVEAMT_CODE%TYPE
, V_MMM_SAVEAMT  IN TSAVEAMT_MMM.SAVEAMT%TYPE
, V_MMM_SAVE_NOTE IN TSAVEAMT_MMM.SAVE_NOTE%TYPE
, V_MMM_EXPIRE_DATE IN TSAVEAMT_MMM.EXPIRE_DATE%TYPE
, V_MMM_USER_ID IN TSAVEAMT_MMM.PROC_ID%TYPE
, V_MMM_C_CODE IN TSAVEAMT_MMM.C_CODE%TYPE
, V_MMM_SITE_CODE IN TSAVEAMT_MMM.SITE_CODE%TYPE
, ERRCODE OUT VARCHAR2
, ERRNO OUT NUMBER
, ERRMSG OUT VARCHAR2)
IS
    V_MMM_SAVEAMT_MMM_SEQ_MMM TSAVEAMT_MMM.SAVEAMT_MMM_SEQ%TYPE;
    V_MMM_SYSDATETIME   DATE;
    V_MMM_ERRCODE       VARCHAR2(2);
    V_MMM_ERRNO         NUMBER;
    V_MMM_ERRMSG        VARCHAR2(100);
    P_EXPIRE_DATE   DATE;
BEGIN
IF V_MMM_PROC_GB_MMM != '1' AND V_MMM_PROC_GB_MMM != '0' AND V_MMM_PROC_YN != '1' AND V_MMM_PROC_YN != '0'
THEN
        V_MMM_ERRCODE := 'ER';
        V_MMM_ERRNO := 999;
        V_MMM_ERRMSG := 'IT IS WRONG PARAMETER! PROC_GB, PROC_YN';
GOTO ERROR_ROUTINE;
END IF;

    IF V_MMM_PROC_YN = '1'
    THEN
        P_EXPIRE_DATE := V_MMM_EXPIRE_DATE;
    END IF;

    BEGIN
        SELECT LPAD(TO_NUMBER(NVL(MAX(SAVEAMT_MMM_SEQ),200000)) + 1, 10, '0'), SYSDATE
          INTO V_MMM_SAVEAMT_MMM_SEQ_MMM, V_MMM_SYSDATETIME
          FROM TSAVEAMT_MMM
         WHERE MEMB_NO = V_MMM_CUST_NO;
    EXCEPTION WHEN OTHERS THEN
        V_MMM_ERRCODE := 'ER';
        V_MMM_ERRNO := ABS(SQLCODE);
        V_MMM_ERRMSG := SUBSTR (SQLERRM, 1, 100);
        GOTO ERROR_ROUTINE;
    END;

    BEGIN
        INSERT INTO TSAVEAMT_MMM(
          MEMB_NO, SAVEAMT_MMM_SEQ, SAVEAMT_MMM_SEQ_PRE, SAVEAMT_MMM_SEQ_ORG
        , PROC_GB, PROC_YN, ORG_YN, ORDER_NO, ORDER_G_MMM_SEQ, ORDER_D_MMM_SEQ, ORDER_W_MMM_SEQ
        , SAVEAMT_GB, SAVEAMT_CODE, SAVE_NOTE, SAVEAMT, PROC_ID, PROC_DATE
        , EXPIRE_YN, EXPIRE_DATE, EXPIRE_DATE_ORG, USE_YN, USE_AMT, SITE_CODE
        , INSERT_ID, INSERT_DATE, MODIFY_ID, MODIFY_DATE, SAVEAMT_ORG, C_CODE
        )
        VALUES
        (
            V_MMM_CUST_NO, V_MMM_SAVEAMT_MMM_SEQ_MMM, V_MMM_SAVEAMT_MMM_SEQ_MMM, V_MMM_SAVEAMT_MMM_SEQ_MMM
            ,V_MMM_PROC_GB_MMM, V_MMM_PROC_YN, '1', V_MMM_ORDER_NO, V_MMM_ORDER_G_MMM_SEQ, V_MMM_ORDER_D_MMM_SEQ, V_MMM_ORDER_W_MMM_SEQ
            , V_MMM_SAVEAMT_GB, V_MMM_SAVEAMT_CODE, V_MMM_SAVE_NOTE, V_MMM_SAVEAMT, V_MMM_USER_ID, V_MMM_SYSDATETIME
            , '0', DECODE( V_MMM_PROC_YN , '1' , P_EXPIRE_DATE ,''), DECODE( V_MMM_PROC_YN , '1' , P_EXPIRE_DATE ,'')
            , '0', 0, V_MMM_SITE_CODE
            , V_MMM_USER_ID, V_MMM_SYSDATETIME, V_MMM_USER_ID, V_MMM_SYSDATETIME, V_MMM_SAVEAMT, V_MMM_C_CODE
        );
    EXCEPTION WHEN OTHERS THEN
        V_MMM_ERRCODE := 'ER';
        V_MMM_ERRNO := ABS(SQLCODE);
        V_MMM_ERRMSG := SUBSTR (SQLERRM, 1, 100);
        GOTO ERROR_ROUTINE;
    END;

<<COMMIT_ROUTINE>>
  ERRCODE := 'OK';
  ERRNO   := 0 ;
  ERRMSG  := V_MMM_SAVEAMT_MMM_SEQ_MMM ;
  GOTO END_ROUTINE;
<<ERROR_ROUTINE>>
  ERRCODE := V_MMM_ERRCODE ;
  ERRNO   := V_MMM_ERRNO ;
  ERRMSG  := V_MMM_ERRMSG ;
<<END_ROUTINE>>
dbms_output.put_line(ERRCODE||'-'||TO_CHAR(ERRNO)||'-'||ERRMSG) ;
END;

分享到:
评论

相关推荐

    mybatis笔记.zip

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使你更好地将关注点集中在你的应用程序上。同时,它也...

    mybatis-jar包

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

    mybatis-3.2.jar

    至于压缩包内的"mybatis-3.2.0-SNAPSHOT",通常在软件开发中,"SNAPSHOT"表示这是一个开发中的版本,可能包含了最新的功能和修复,但未正式发布,可能存在不稳定因素。开发者可能会在开发过程中频繁地更新SNAPSHOT...

    mybatis-3.2.0-SNAPSHOT-bundle

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

    整合dubbo、maven、spring、mybatis的服务提供者消费者调用错误示例

    在IT行业中,分布式服务框架Dubbo是阿里巴巴推出的一款高性能、轻量级的RPC(远程过程调用)框架,它能够使服务消费方和服务提供方通过网络进行通信。本示例中,我们将关注一个典型的问题——服务消费者在调用服务...

    mybatis-3.5.6.zip

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

    mybatis自关联查询

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。在实际开发中,我们常常需要处理数据之间的关联关系,比如一对一、一对多、多对一、多对多等。本篇文章将重点讲解 MyBatis 中的自关联...

    mybatis示例源码.zip

    接下来,`mybatis 调用存储过程`展示了如何在 MyBatis 中执行数据库的存储过程。Oracle 数据库常常使用存储过程来封装复杂的业务逻辑或提高性能。在 MyBatis 中,调用存储过程需要用到 `&lt;select&gt;` 标签的 `procedure...

    MyBatis3入门到精通教程

    MyBatis提供了Interceptor插件机制,可以通过自定义拦截器实现对SQL执行过程的拦截,比如日志记录、性能监控等。 10. **最佳实践** 在实际使用中,建议遵循一些最佳实践,如合理设计Mapper接口,避免过多的复杂...

    springBoot+mybatis简单demo完整详细版

    Spring Boot以其快速启动、自动化配置和开箱即用的特点,大大简化了Java应用程序的开发过程,而MyBatis作为轻量级的持久层框架,提供了灵活的SQL映射机制,使得数据库操作更为便捷。在这个教程中,我们将不仅了解这...

    spring整合mybatis.docx

    在这个过程中,我们通常会指定配置文件的位置、MyBatis的环境ID,以及Mapper接口的包名,使得Spring可以在启动时自动扫描并管理这些接口。 在Mapper接口和XML文件方面,每个Mapper接口代表一个SQL操作,接口方法...

    MyBatis(四)

    MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis使得SQL编写变得直观且易于维护,让开发者能够专注于SQL本身,而无需关注...

    mybatis原生

    7. **缓存机制**:MyBatis内置了两级缓存,一级缓存在SqlSession级别,二级缓存在Mapper级别。缓存可以提高数据访问效率,减少不必要的数据库交互。 8. **插件扩展**:MyBatis允许开发人员编写自定义插件,插件可以...

    mybatis-3.2.2.jar

    MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。在项目中引入MyBatis-3.2.2.jar这个压缩包,可以极大地提升数据库操作的灵活性和效率。 首先,MyBatis的核心是SQL映射文件和...

    mybatis-3.0.5

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

    mybatis-3.0.6-官方资料

    6. **接口方法与 SQL 映射关联**:通过在 Service 或 DAO 接口中定义的方法签名,MyBatis 可以自动找到对应的 SQL 映射,实现方法调用与 SQL 执行的绑定。 7. **事务管理**:MyBatis 支持手动和自动事务管理,可以...

    翻译好的mybatis-3.5.2源码包

    7. **缓存机制**:MyBatis内置了两级缓存,一级缓存在SqlSession级别,二级缓存在SqlSessionFactory级别,可以提高数据访问速度。 8. **插件机制**:MyBatis允许开发人员创建自定义插件,拦截SqlSession的方法调用...

    mybatis-src-3.2.2.zip

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

Global site tag (gtag.js) - Google Analytics