DB2 MyBatis 序列 返回ID类型问题

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 对象中去才能够实现角色的插入

java部分 :
//在此之前 roleInfo.roleId 为空 
this.roleDao.insertRole(roleInfo) ;//这个地方还是返回int
String role_id = roleInfo.getRoleId();

获取序列生成的 ID

 

转载于:https://www.cnblogs.com/hi-gdl/p/9645129.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值