Oracle mybatis 新增返回主键ID

时间:2024-04-07 18:00:14

Oracle mybatis 新增返回主键ID

写上

            <selectKey resultType="String" order="BEFORE" keyProperty="enterp_no">  
                    SELECT PRSP_CRM_ENTERP_ID.nextval  FROM DUAL  
            </selectKey>
 

其中:PRSP_CRM_ENTERP_ID.nextval  是oracle 序列自增。因为oracle 中没有自增设置。。

 DUAL   : 这个不需要变化。

resultType :  正常的返回值。 也就是 PRSP_CRM_ENTERP_ID.nextval  的返回值类型

order : 这个oracle  必须写BEFORE ,mysql 是after 。

keyProperty: 这个是你的实体类中的一个属性。

注意: 

 

 

Oracle mybatis 新增返回主键ID

如何操作呢?

Oracle mybatis 新增返回主键ID

这里上面明显new 一个对象 但是只存了两个值。如果执行了上面一个新增语句,那么这个 ID 就会映射到实体类中了。。直接取得就好了。。

注意:不能直接取 retID 不然这个永远都是 1。。。 不要采坑

 

mysql 中 如下:

  1. <insert id="insert" parameterType="cn.***.beans.LogObject" >  
  2.     <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">  
  3.           SELECT LAST_INSERT_ID() AS ID    
  4.     </selectKey>  
  5.     INSERT INTO S_T_LOGS (  
  6.         ID,   
  7.         USER_ID,   
  8.         USER_NAME,   
  9.         USER_IP,   
  10.         OPERATION_TIME,  
  11.         DESCRIPTION,   
  12.         RESOURCE_ID)   
  13.     VALUES (  
  14.         #{id},   
  15.         #{userId},   
  16.         #{userName},   
  17.         #{userIp},   
  18.         #{operationTime},  
  19.         #Xml代码   insert id="insert" parameterType="cn.***.beans.LogObject" >       selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="id">           SELECT LOGS_SEQ.nextval AS ID FRO,   
  20.         #{resourceId})  
  21. </insert>  

 

 

转载于:https://my.oschina.net/960823/blog/1568463