1. 程式人生 > >使用mybatis自動生成指定規則的編號

使用mybatis自動生成指定規則的編號

一、要求
 1.如果表中還未有選單,新增一級選單,編號為:'300'
 2.繼續新增一級選單,編號為:一級選單最大編號 + 1,如'301','302','303'
 3.新增子級選單:編號 = 父級編號 + 當前父級選單下最大選單編號 +1,如果當前子級沒有選單則從001開始
  如:'300001','300002','300003'
 4.子級選單的子級選單依照第3步類推,如:'300001001','300001002','300001003'
 5.以上要求實現效果如下圖:

使用mybatis自動生成指定規則的編號

二、實現
 使用mybatis自動生成合理的id,程式碼如下:

<selectKey keyProperty="id" resultType="String" order="BEFORE">
    <choose>
        <when test="fid == null or fid == ''">
            select ifnull(max(id)+1, '300') id from sys_menu sys_menu where fid is null or fid=''
        </when>
        <otherwise>
            select ifnull(max(id)+1, concat(#{fid,jdbcType=VARCHAR},'001')) id from sys_menu where fid = #{fid,jdbcType=VARCHAR}
        </otherwise>
    </choose>
</selectKey>

三、使用及效果
 將上面的程式碼放在mybatis中語句的開頭即可,如圖:

使用mybatis自動生成指定規則的編號