DB2 序列 类型问题

AMS_ROLE_SEQ 是一个序列 , 获取序列下个值的方法我知道的有如下两种

-- 第一种
select next value for AMS_ROLE_SEQ AS ID from SYSIBM.SYSDUMMY1 ;

-- 第二种
VALUES NEXTVAL FOR AMS_ROLE_SEQ

如果要转换为字符串型可如下方式转换 :

-- 第一种
select CHAR(next value for AMS_ROLE_SEQ) AS ID from SYSIBM.SYSDUMMY1 ;

-- 第二种
VALUES(CHAR(NEXTVAL FOR AMS_ROLE_SEQ))

拓展 :

在MyBatis 中 需要获取返回的主键ID

    <!-- 新增角色信息 insertRole -->
    <insert id="insertRole" parameterType="com.xxxxxxx.xxx.bean.system.RoleBean">
        <selectKey resultType="string" keyProperty="roleId" order="BEFORE">
              <!-- SELECT CHAR(NEXT VALUE FOR AMS_ROLE_SEQ) AS roleId FROM SYSIBM.SYSDUMMY1 -->
              <!-- VALUES NEXTVAL FOR AMS_ROLE_SEQ -->
              VALUES(CHAR(NEXTVAL FOR AMS_ROLE_SEQ))
           </selectKey>
        INSERT INTO AMS_ROLE
        (ROLE_ID,ROLE_NAME,APPROVAL_LEVEL,REMARK,ROLE_STATUS)
        VALUES(#{roleId},#{roleName},#{approvalLevel},#{remark},#{roleStatus})
    </insert>
roleId 是 RoleBean 的String类型属性 ,
ROLE_ID是表 AMS_ROLE varchar型列

因此 resultType 只能返回 String 类型序列值塞到 RoleBean 对象中去才能够实现角色的插入

猜你喜欢

转载自www.cnblogs.com/hi-gdl/p/9645129.html