表机构
存储
CREATE DEFINER=`ymt_dev`@`%` PROCEDURE `nextsequValue`(IN sename varchar(100),OUT nextValue int)
BEGIN
declare oldValue int;
start transaction;
select SEQUENCE_VALUE into oldValue from JC_SEQUENCE where SEQUENCE_NAME=sename for update;
update JC_SEQUENCE set SEQUENCE_VALUE=SEQUENCE_VALUE+1 where SEQUENCE_NAME=sename;
set nextValue=oldValue+1;
commit;
END
mybatis 调用存储
<select id="getSequenceValue" parameterType="java.util.HashMap" statementType="CALLABLE" resultType="java.lang.Object">
<![CDATA[
{call nextsequValue(
#{sename,mode=IN,jdbcType=VARCHAR},
#{nextValue,mode=OUT,jdbcType=INTEGER}
)}
]]>
</select>
public Object getSequenceValue(Map<String, Object> paramMap );