下面总结了两种方式,一种是使用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>

转载于:https://www.cnblogs.com/ycblus/p/5500527.html

mybatis使用oracle自动生成主键相关推荐

  1. MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)

    MyBatis自动生成的主键很多数据库支持自动生成主键的数据类型.不过这通常(并不总是)是个私有的特性.SQL Map 通过<insert>的子元素<selectKey>来支持 ...

  2. plsql导入数据主键_使用plsql添加数据并自动生成主键

    使用plsql添加数据并自动生成主键 步骤如下: 步骤一:新建需要创建的表如: -- Create table create table IRC_SYS_DATADIC ( datadic_id VA ...

  3. dm数据库无法用序列自动生成主键,无法解析的成员访问表达式【SEQ_STU_CON_NEXTVAL】

    报错信息: 无法解析的成员访问表达式[SEQ_STU_CON_NEXTVAL] select SEQ_STU_CON_NEXTVAL 这种错的解决方案,在dm数据库中创建一个序列叫SEQ_STU_CO ...

  4. SQL DDL 生成建表语句(可自动生成主键约束,字段默认值等)

    --获取建表DDL(+主键) declare @tabname varchar(50) set @tabname='sys_log'--表名if ( object_id('tempdb.dbo.#t' ...

  5. 三种获得自动生成主键的方法,getGeneratedKeys,专用SQL和可更新的结果集

    简单总结了一下我目前知道的方法. package test; import java.sql.Connection; import java.sql.DriverManager; import jav ...

  6. Hibernate保存数据自动生成主键出现奇怪异常Duplicate entry '0' for key 1

    今天在写一块程序的时候,出现了一个异常信息,捣鼓了一上午,终于找到了异常原因--不仅仅是简单的主键冲突问题 测试数据库:MySQL 异常信息如下: org.hibernate.exception.Co ...

  7. MYSQL触发器自动生成主键UUID

    MYSQL导入数据时,通过触发器自动生成UUID beginif new.id is null THEN set new.id = (replace(uuid(),"-",&quo ...

  8. mysql插入时主键id为uuid_mysql插入数据自动生成主键uuid

    DemoMapper.java //注意方法的返回值必须是void; void add(Demo demo); ============================================ ...

  9. MyBatis insert操作插入,返回主键from官方

    下面就是 insert,update 和 delete 语句的示例: <insert id="insertAuthor" parameterType="domain ...

  10. EntityFramework实体默认值遇到Oracle自增主键

    1. Oracle实现主键自动增长 一般我们在Oracle实现主键自动增长,通常通过序列加触发器实现. 定义序列用于获取递增数字 CREATE SEQUENCE 序列名[INCREMENT BY n] ...

最新文章

  1. SAP_SD常用增强
  2. jdbc连接数据scanip_java数据库连接_jdbc
  3. html radio 作用域,ionic 表单输入 ion-checkbox ion-radio ion-toggle ion-spinner
  4. java集合框架——接口图+类图+遗留类图
  5. JavaScript玩转机器学习:保存并加载 tf.Model
  6. Python进阶_mysql(1)
  7. 渗透中Meterpreter基本操作和对应的windows上的排查或者现象
  8. aws php sns,PHP中的AWS SNS HTTP订阅确认
  9. 英特尔® 实感™ SDK 架构
  10. 【学习笔记 1】集成电路发展及其设计制造流程(ICer必备)
  11. iShare.js分享插件
  12. js 限制鼠标移动范围
  13. VirtualBox设置桥接网络
  14. 项目实训第一周第三篇
  15. 使用itextpdf生成pdf
  16. 蓝奏云直链解析php,【带源码】新思路--蓝奏云直链解析
  17. Servlet | ServletConfig接口、ServletContext接口详解
  18. Tomcat系列:Tomcat版本与JDK版本对应关系
  19. 亲亲亲亲兄弟们必学成为首富第一步学习Linux基础命令
  20. 飞卡日常进度之山外上位机的二值化模式和灰度模式

热门文章

  1. JS原型继承工作原理
  2. Windows 8 Metro中文件的操作及访问(读写删除复制)
  3. Redis 外部访问设置
  4. 创建对象时引用的关键字,assign,copy,retain
  5. 最新的Functions 类
  6. SNOI2017 礼物
  7. 测试一软件测试基础知识总结
  8. python全栈开发-Day3 字符串
  9. php curl 伪造IP来源的代码分享
  10. 修改过的Lucida Sans typewriter 字体,另推荐两个不错的编程字体