zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    [Buzz Today]2012.10.08
    [Buzz Today]2012.10.02
    [Tips] How to resolve "You should only open projects from a trustworthy source”
    [Architecture]tumblr.com
    [Buzz Today]2012.09.12
    [Tips]*.rsp文件 == MSBuild Response File
    [CAX Speak]Autodesk收购HSMWorks
    [CAX Speak]Sungrass.io Overview
    The first glance at Inno
    [Tips]HTML5之禁止File Drag&Drop
  • 原文地址:https://www.cnblogs.com/hi-gdl/p/9645129.html
Copyright © 2011-2022 走看看