zoukankan      html  css  js  c++  java
  • mybatis调用sqlserver存储过程

    sqlserver中存储过程函数为:

    ALTER    PROCEDURE [dbo].[egl_point_ship]
        @order_id     varchar(32),
        @b_Success        int        OUTPUT, 
        @c_errmsg        varchar(250)    OUTPUT 
      ...
    order_id是传入的值,b_Success和c_errmsg是执行完存储过程后返回输出的值

    DAO接口与mapper文件如下:

    // mapper接口
    void eglPointShip(Map map);
    // mapper.xml文件
      <update id="eglPointShip" parameterType="map" statementType="CALLABLE">
        {
          call egl_point_ship(
                    #{order_id,mode=IN,jdbcType=VARCHAR},
                    #{b_Success,mode=OUT,jdbcType=INTEGER},
                    #{c_errmsg,mode=OUT,jdbcType=VARCHAR}
                    )
            }
      </update>

    server层调用dao接口:

    @Transactional
        public ProcedureDto pointSend(String moveOrderId) {
            Map<String, String> map = new HashMap<>();
            map.put(Procedure.orderId, moveOrderId);
            // 调用存储过程
            this.moveOrdersMapper.eglPointShip(map);
            // map里得到返回信息
            String bSuccess = String.valueOf(map.get(Procedure.bSuccess));
            String cErrmsg = map.get(Procedure.cErrmsg);
            if ("0".equals(bSuccess)) {
                throw new ApplicationException(cErrmsg);
            }
        }

     2018/9/7修改:存储过程不传map,传对象也是可以的,并且更加清晰

    service层方法如下:

    public void pointSend(String moveOrderId) {
            PointProcedure pointProcedure = new PointProcedure();
            pointProcedure.setOrderId(moveOrderId);
         // 调用存储过程
    this.moveOrdersMapper.eglPointShip(pointProcedure);
         // 回调信息
    if (0 == pointProcedure.getSuccess()) { throw new ApplicationException(pointProcedure.getMsg()); } }

    mapper文件里的parameterType需改为传入的对象,也可以删掉不写,mybatis也能够找到该参数

    Code change world
  • 相关阅读:
    php 编码规范(1)
    ubuntu 引导删除
    http协议详解
    centos 下mysql操作
    php 异常捕获
    php 设置报错等级
    在WINDOWS SERVER 上或远程桌面中使用 MUTEX
    发送WIN+SAPCE键,WINDOWS,空格键
    访问本机的WEB API 报400错误
    php.ini xdebug
  • 原文地址:https://www.cnblogs.com/icanner/p/9585864.html
Copyright © 2011-2022 走看看