`

MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键

阅读更多

MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2016年8月24日 10:39:04 星期三

http://fanshuyao.iteye.com/

 

一、问题描述

 

由于Oracle是不支持自动生成主键的,不像Sql或者Mysql能自动生成。

 

 

二、解决方案

 

使用Oracle的序列生成主键。

 

1、首先在Oracle数据库创建序列:

 

create sequence SEQ_T_OPERATION_LOG
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
cache 20;

 

 

2、在Mybatis中使用序列,order必须为"BEFORE" ,keyProperty对应Java实体的主键属性,

SEQ_T_OPERATION_LOG.nextval 为第1步创建的序列

 

<selectKey resultType="java.lang.Long" order="BEFORE" keyProperty="logId">
        SELECT SEQ_T_OPERATION_LOG.nextval AS logId FROM dual
</selectKey>

 

完整示例(一个保存操作):

 

<insert id="save" parameterType="com.chinagas.org.beans.OperationLog" >
  	<selectKey resultType="java.lang.Long" order="BEFORE" keyProperty="logId">
        SELECT SEQ_T_OPERATION_LOG.nextval AS logId FROM dual
	</selectKey>
    insert into T_OPERATION_LOG (LOG_ID, LOG_NAME, LOG_TYPE, 
      TABLE_NAME, TABLE_NAME_VALUE, TABLE_ID, IP_ADDRESS, MAC_ADDRESS, 
      CREATE_BY, CREATE_BY_NAME, CREATE_TIME, 
      MODIFY_BY, MODIFY_BY_NAME, MODIFY_TIME, 
      REMARK, CONTENT_AFTER_OPERATION
      )
    values (#{logId,jdbcType=DECIMAL}, #{logName,jdbcType=VARCHAR}, #{logType,jdbcType=DECIMAL}, 
      #{tableName,jdbcType=VARCHAR}, #{tableNameValue,jdbcType=VARCHAR}, #{tableId,jdbcType=DECIMAL}, #{ipAddress,jdbcType=VARCHAR}, #{macAddress,jdbcType=VARCHAR}, 
      #{createBy,jdbcType=DECIMAL}, #{createByName,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
      #{modifyBy,jdbcType=DECIMAL}, #{modifyByName,jdbcType=VARCHAR}, #{modifyTime,jdbcType=TIMESTAMP}, 
      #{remark,jdbcType=VARCHAR}, #{contentAfterOperation,jdbcType=CLOB}
      )
  </insert>

 

如果数据库支持自动生成主键的,可以参考此文章:

http://fanshuyao.iteye.com/blog/2245853

 

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2016年8月24日 10:39:04 星期三

http://fanshuyao.iteye.com/

 

1
2
分享到:
评论
2 楼 tieye 2016-08-24  
天天  造轮子
1 楼 蕃薯耀 2016-08-24  
MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键

>>>>>>>>
蕃薯耀

相关推荐

    mybatis自增主键文档

    Oracle通常使用Sequence来生成自增主键,而MySQL则直接通过表定义的自增属性来处理。以下将详细讲解这两种数据库在MyBatis中的自增主键配置。 1. **Oracle Sequence 配置** 在Oracle中,你可以创建一个Sequence来...

    mybatis连接oracle实例

    如果你使用Spring框架,需要在Spring的配置文件中配置MyBatis的SqlSessionFactory和Mapper扫描器,使Spring能自动管理Mapper接口的实例。 7. **测试连接**: 在Eclipse中创建一个JUnit测试类,注入`TestService`...

    mybatis自动生成实例支持oracle和MySQL

    在"mybatis自动生成实例支持oracle和MySQL"的场景中,我们可以理解为该压缩包包含了一个能够帮助开发者自动生成针对Oracle和MySQL数据库的相关代码的工具或教程。 1. **MyBatis自动化工具**: MyBatis Generator ...

    浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的方法

    在Oracle数据库中,由于不支持自动递增的主键策略,开发者通常会使用Sequence来生成主键值。本文将深入探讨如何在MyBatis-Plus(MP)框架中配置Oracle的主键Sequence。 首先,Oracle Sequence是Oracle数据库提供的...

    Java使用Mybatis将数据批量插入到Oracle

    Java实现使用Mybatis将数据批量插入到Oracle数据库,并且可以使用Oracle序列来生成主键

    MyBatis主键自动生成方法.pdf

    在MyBatis中,主键自动生成是一种常见且实用的功能,尤其在与支持自动增加主键的数据库(如MySQL)配合使用时。当我们在插入数据时,有时希望数据库能够自动为新记录生成唯一的主键值,而不是手动指定。MyBatis提供...

    MyBatis Oracle 自增序列的实现方法

    这里,`useGeneratedKeys="true"`表示使用自动生成的键,`keyProperty="s_id"`指定将生成的键值赋给参数对象的`s_id`属性。`&lt;selectKey&gt;`标签用于执行SQL获取序列值,`order="BEFORE"`表示在插入操作之前执行。`...

    Oracle主键自增的办法

    在 Oracle 数据库中,与许多其他关系型数据库系统不同,它并没有内置的自动自增字段类型,例如 MySQL 的 `AUTO_INCREMENT` 或 SQL Server 的 `IDENTITY`。但是,Oracle 提供了序列(Sequences)和触发器(Triggers)...

    Mybatis批量插入数据返回主键的实现

    在Mybatis中,批量插入数据可以通过使用foreach语句来实现,而返回主键可以通过使用useGeneratedKeys和keyProperty两个属性来实现。下面是一个示例代码: 首先,在持久层的Mapper文件中,我们需要定义一个批量插入...

    mybatis insert返回主键代码实例

    MyBatis 插入返回主键代码实例详解 MyBatis 是一个流行的持久层框架,它提供了多种方式来处理数据库操作。其中,插入数据并返回主键是一个非常常见的操作场景。本文将详细介绍 MyBatis 中插入返回主键代码实例的...

    MyBatis在insert插入操作时返回主键ID的配置(推荐)

    这样,在执行 insert 语句时,MyBatis 将自动将插入的主键 ID 返回到对象的 `userId` 属性中。 Oracle 用法 在 Oracle 中,情况变得稍微复杂一些。因为 Oracle 不支持自增长主键,所以我们不能使用 `...

    MyBatis插入数据返回主键的介绍

    MyBatis插入数据返回主键的介绍 MyBatis是一个流行的持久层框架,它提供了许多实用的功能,包括插入数据返回主键的功能。...使用MyBatis插入数据返回主键的功能可以帮助我们更方便地实现数据的持久化操作。

    最新Mybatis插入数据返回自增主键详细配置

    Mybatis插入数据返回的自增主键会自动设置为插入对象的属性值,因此我们可以通过获取对象的属性获得自增的主键。 1、通过xml配置获取自增主键 xml配置 select last_insert_id() insert into sys_user(username,...

    MyBatis自动生成配置文件全解.zip

    这个压缩包文件“MyBatis自动生成配置文件全解.zip”显然包含了关于如何配置和使用MyBatis自动代码生成器的详细指南。 首先,MyBatis的自动代码生成器(MyBatis Generator,简称MBG)是一个强大的工具,它可以自动...

    详解Java MyBatis 插入数据库返回主键

    这种方式同样适用于MySQL,但也可以用于其他数据库,如Oracle,当需要执行特定的数据库函数来获取主键时。`&lt;selectKey&gt;`标签定义了一个SQL查询,用于获取新插入记录的主键。在本例中,`SELECT LAST_INSERT_ID()`是...

    MyBatis+MySQL 返回插入的主键ID的方法

    在使用MyBatis进行数据库操作时,有时我们需要在插入数据后获取自动生成的主键ID,这在处理自增主键的场景下尤其常见。在MySQL数据库中,自增主键通常用于标识每条记录的独特性,而在插入新记录后,数据库会自动为这...

    springmybatis

    mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门...

    mybatis实体类自动生成工具

    MyBatis实体类自动生成工具是一款非常实用的开发辅助软件,尤其对于那些使用MyBatis作为持久层框架的开发者来说,它可以极大地提高开发效率。MyBatis是一个优秀的Java ORM(对象关系映射)框架,它允许开发者将SQL...

    mybatis自动生成所需文件打包

    MBG可以与各种数据库配合使用,包括Oracle,通过JDBC驱动程序获取数据库元数据,然后根据这些信息生成相应的Java代码和XML配置文件。 2. **mybatis-generator-core-1.3.5.jar**:这是MyBatis Generator的核心库。它...

Global site tag (gtag.js) - Google Analytics