mysql 存储过程(mybatis plus)

mysql 存储过程(mybatis plus)

mysql函数

CREATE DEFINER=`root`@`%` PROCEDURE `part_id_dpt`(
IN f_type INT,
in sys_name varchar(50),
#in f_length int,
out sy_content varchar(50)

)
BEGIN
	declare res varchar(500);
	declare tmp_content varchar(500);
	declare temp_int int;
	declare temp_date varchar(10);
	declare now_date varchar(10);
if f_type =4 then	-- 格式为 20990101000001
		
		select system_content  INTO tmp_content from code_system where system_name=sys_name;
			if length(tmp_content) <>4 then
				set tmp_content = '0001';
      end if;
		select CONVERT(tmp_content,UNSIGNED) into temp_int;	-- 流水号
		set res =LPAD(temp_int+1,4,0); -- 不足6位补0
	END IF;

	#SET res = '123';
	#SELECT sy_content;
	#SELECT res;
	UPDATE code_system SET system_content =res WHERE system_name=sys_name;
select system_content  INTO sy_content from code_system where system_name=sys_name;
	
END

mapper

//mybatis的xml必须有 sql语句不用写在里面
public interface OnDevMapper extends BaseMapper<OnDev> {
    @Select("{CALL part_id_dpt(#{f_type,mode=IN,jdbcType=INTEGER }," +
            "#{sys_name,mode=IN,jdbcType=VARCHAR }," +
            " #{sy_content,mode=OUT,jdbcType=VARCHAR })}")
    @Options(statementType = StatementType.CALLABLE)
    void getNewId(Map<String, Object> map);

Sevice

put时sy_content是空,get时就会获取到值

 Map<String, Object> params = new HashMap<String, Object>();
        params.put("f_type", 4);
        params.put("sy_content", "");
        params.put("sys_name", "on_part_id");
        onDevMapper.getNewId(params);
        onDev.setPartId(params.get("sy_content").toString());
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值