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

    /*
     *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
     *
     *  Redistribution and use in source and binary forms, with or without
     *  modification, are permitted provided that the following conditions are met:
     *
     *  Redistributions of source code must retain the above copyright notice,
     *  this list of conditions and the following disclaimer.
     *  Redistributions in binary form must reproduce the above copyright
     *  notice, this list of conditions and the following disclaimer in the
     *  documentation and/or other materials provided with the distribution.
     *  Neither the name of the dreamlu.net developer nor the names of its
     *  contributors may be used to endorse or promote products derived from
     *  this software without specific prior written permission.
     *  Author: Chill 庄骞 (smallchill@163.com)
     */
    package org.springblade.desk.mapper;
    
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import org.apache.ibatis.annotations.Param;
    import org.springblade.desk.entity.OaSerial;
    
    import java.util.HashMap;
    
    /**
     * Mapper 接口
     *
     * @author Chill
     */
    public interface OaSerialMapper extends BaseMapper<OaSerial> {
    
    	public HashMap<String,Object> getSerial(@Param("tenantId") String tenantId,@Param("module") String module,
    											@Param("dateStr") String dateStr,
    											@Param("prefix") String prefix,
    											@Param("serialLength") int serialLength);
    
    }
    

      mapper.xml文件

    <mapper namespace="org.springblade.desk.mapper.OaSerialMapper">
    
        <select id="getSerial" resultType="java.util.HashMap" statementType="CALLABLE">
            { call get_module_serial_code(#{tenantId},#{module},#{dateStr},#{prefix},#{serialLength}) }
        </select>
    
    
    </mapper>
    

      

    CREATE DEFINER=`root`@`%` PROCEDURE `get_module_serial_code`(IN `p_tenant_id` varchar(20),IN `p_module` varchar(100),IN `p_date` varchar(20),IN `p_prefix` varchar(20),IN `p_serial_length` int)
    BEGIN
    
    	declare p_is_success varchar(10) default 0 ;
        declare l_serial varchar(100); 
    		DECLARE t_error INTEGER DEFAULT 0;    
    		DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; 
        
    	start transaction;
    	
    	begin 
    		begin
    
    				IF EXISTS( select 1 from oa_serial where module=p_module and tenant_id = p_tenant_id lock in share mode) then
    					IF EXISTS( select 1 from oa_serial where module=p_module and date_str=p_date and tenant_id = p_tenant_id lock in share mode) then
    						UPDATE	oa_serial
    						SET serial=right(concat('00000000', cast((cast(COALESCE(serial,'0') as signed) +1) as char)),p_serial_length)
    						WHERE module=p_module and date_str=p_date and tenant_id = p_tenant_id ;
    					ELSE
    						UPDATE oa_serial 
    						SET serial = right('00000001',p_serial_length) , date_str=p_date 
    						WHERE module=p_module and tenant_id = p_tenant_id ;
    					end if;
    				ELSE
    					INSERT INTO oa_serial ( tenant_id,module, date_str, serial)
    					VALUES  ( p_tenant_id,p_module,p_date,right('00000001',p_serial_length) ) ;
    				end if;
    				
    				SELECT serial into l_serial  FROM oa_serial WHERE module = p_module and date_str = p_date and tenant_id = p_tenant_id ;  
        end;
    	end;  
        
      IF t_error = 1 THEN    
    		ROLLBACK;   
        set p_is_success='-1';
    	ELSE    
    		COMMIT; 
        set p_is_success='1';
    	END IF; 
        
      if p_is_success = '1' then
    		select concat(p_prefix,l_serial) l_serial,p_is_success ;
    		
      else 
    		select null l_serial ,p_is_success;
      end if;
    	
    	
    END
    

      

  • 相关阅读:
    POJ 1251 Jungle Roads
    1111 Online Map (30 分)
    1122 Hamiltonian Cycle (25 分)
    POJ 2560 Freckles
    1087 All Roads Lead to Rome (30 分)
    1072 Gas Station (30 分)
    1018 Public Bike Management (30 分)
    1030 Travel Plan (30 分)
    22. bootstrap组件#巨幕和旋转图标
    3. Spring配置文件
  • 原文地址:https://www.cnblogs.com/xianz666/p/14479364.html
Copyright © 2011-2022 走看看