mybatis使用oracle自动生成主键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis使用oracle自动生成主键相关的知识,希望对你有一定的参考价值。

下面总结了两种方式,一种是使用oracle的sys_guid函数自动生成,另一种是使用sequence,

 方法一:
  <insert id="insert" useGeneratedKeys="false" keyProperty="storeId" parameterType="zttc.itat.user.po.TStore" >
   <selectKey resultType="String"  keyProperty="storeId" order="BEFORE">
   select sys_guid() from dual
 </selectKey>
    insert into T_STORE (STORE_ID, STORE_NAME, STORE_PRICE,CREATE_DATE,END_DATE
      )
    values ( #{storeId,jdbcType=VARCHAR}, #{storeName,jdbcType=VARCHAR}, #{storePrice,jdbcType=DECIMAL},
      #{createDate,jdbcType=VARCHAR},#{endDate,jdbcType=VARCHAR}
      )
  </insert>
 

 方法二:

 <insert id="insert" parameterType="zttc.itat.user.po.TStore" >
    insert into T_STORE (STORE_ID, STORE_NAME, STORE_PRICE,CREATE_DATE,END_DATE
      )
    values (my_sequence.nextval, #{storeName,jdbcType=VARCHAR}, #{storePrice,jdbcType=DECIMAL},
      #{createDate,jdbcType=VARCHAR},#{endDate,jdbcType=VARCHAR}
      )
  </insert>
 
  <insert id="insert" useGeneratedKeys="false" keyProperty="storeId" parameterType="zttc.itat.user.po.TStore" >
   <selectKey resultType="String"  keyProperty="storeId" order="BEFORE">
  select my_sequence.nextval as storeId from dual
 </selectKey>
    insert into T_STORE (STORE_ID, STORE_NAME, STORE_PRICE,CREATE_DATE,END_DATE
      )
    values ( #{storeId,jdbcType=VARCHAR}, #{storeName,jdbcType=VARCHAR}, #{storePrice,jdbcType=DECIMAL},
      #{createDate,jdbcType=VARCHAR},#{endDate,jdbcType=VARCHAR}
      )
  </insert>
 

 

以上是关于mybatis使用oracle自动生成主键的主要内容,如果未能解决你的问题,请参考以下文章

mybatis中(Oracle)关于insert时主键自动加1的使用方法

MyBatis-Oracle生成主键,嵌套对象中的List增加

mybatis分页和主键生成

mybatis怎么批量插入数据库

mybatis如何获取oracle新插入数据记录的主键?

Mybatis-plus 主键生成策略详解