`
Folix
  • 浏览: 12742 次
社区版块
存档分类
最新评论

Mybatis下Oracle,Mysql插入返回主键

阅读更多

Model代码:

 

 

public class Task {

	private Long taskId;
	private String message;
       
        //setter and getter
	
}

 

 

Oracle:

这里就用Mybatis的generator工具生成的XML模板做例子

 

说明:

1、sel_task_id 是自己在Oracle中建立的seq

2、resultType是主键的类型,order是表示在insert语句之前运行还是之后,keyProperty代表的是Task的主键。

3、特别注意,用了selectKey之后,需要删除generator工具生成的主键if条件判断,不然会报ORA-01400: 无法将 NULL 插入 TASK_ID 的错误

4、这条insert语句返回的依然是插入的条数1,task的主键会自动加载到model的Task中,成功后就可以直接操作Task获取主键了.

 

 

<insert id="insertSelective" parameterType="cn.model.Task">
    <selectKey resultType="Long" order="BEFORE" keyProperty="taskId" >
      select seq_task_id.nextval as taskId  from dual
    </selectKey>
    insert into TASK
    <trim prefix="(" suffix=")" suffixOverrides="," >
        TASK_ID,
      <if test="message != null" >
        MESSAGE,
      </if>
     </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
       #{taskId,jdbcType=DECIMAL},
      <if test="message!= null" >
        #{message,jdbcType=VARCHAR},
      </if>
     </trim>
  </insert>

 

 

MYSQL:

这个没什么可说明的,比较简单。

 

<insert id="insert" useGeneratedKeys="true" keyProperty="taskId" parameterType="cn.model.Task">
	insert into TASK(TASK_ID,MESSAGE)
	values(#{taskId},#{message})
</insert>

 

 

分享到:
评论

相关推荐

    mybatis连接oracle实例

    在Eclipse中创建一个JUnit测试类,注入`TestService`,并调用其方法进行数据库操作,如查询、插入、更新或删除,以验证MyBatis是否成功连接到Oracle数据库。 通过以上步骤,你就完成了MyBatis连接Oracle数据库的...

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

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

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

    本文将详细介绍 MyBatis 在 insert 插入操作时返回主键 ID 的配置,包括 MySQL 和 Oracle 两个数据库的用法。 MySQL 用法 在 MySQL 中,MyBatis 提供了一个简单的配置来返回插入的主键 ID。我们可以在 insert 语句...

    Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例

    需要注意的是,在 Mybatis 3.3.0 及其之前的版本中,不支持批量插入返回带主键的功能。需要升级到 Mybatis 3.3.1 及其以上版本。 总结 通过上面的示例,我们可以看到 Mybatis 插入一条或批量插入 返回带有自增长...

    mybatis自增主键文档

    在MyBatis中,处理自增主键是一个常见的需求,特别是在Oracle和MySQL这两个数据库中。Oracle通常使用Sequence来生成自增主键,而MySQL则直接通过表定义的自增属性来处理。以下将详细讲解这两种数据库在MyBatis中的...

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

    在处理插入数据到数据库并返回主键的场景时,MyBatis提供了两种主要的方法。这两种方法都是在映射文件(Mapper.xml)中配置,允许你在插入记录后获取自动生成的主键值。 **方式一:使用`useGeneratedKeys`和`...

    mybatis+Oracle做批量导入时的坑

    这样做是因为Oracle不支持像MySQL那样的`VALUES`子句进行批量插入,所以我们需要模拟这个过程,通过`UNION ALL`将多个单行查询组合成一个大的`SELECT`。 在Service层,我们定义了`addBleaseList`方法,它接收一个`...

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

    MyBatis插入数据返回主键的介绍 MyBatis是一个流行的持久层框架,它提供了许多实用的功能,包括插入数据返回主键的功能。在本文中,我们将详细介绍MyBatis插入数据返回主键的实现方法。 Service层实现 在Service...

    MyBatis Oracle 自增序列的实现方法

    在MyBatis的配置文件中,你可能已经为其他支持自增主键的数据库(如MySQL)设置了`useGeneratedKeys="true"`,但对Oracle来说,因为自增机制不同,需要在插入语句中显式调用序列。所以,对于Oracle,你需要按照上述...

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

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

    oracle,mysql表格转换mybatis相关文件

    本文将详细介绍如何将Oracle和MySQL的表格转换为MyBatis的相关文件,并深入探讨相关知识点。 首先,Oracle和MySQL的表格转换涉及到数据结构的映射。Oracle和MySQL的表结构在设计上有所不同,包括字段类型、约束条件...

    MyBatis insert操作插入数据之后返回插入记录的id

    "MyBatis insert操作插入数据之后返回插入记录的id" MyBatis是一款流行的Java持久层框架,今天我们将讨论MyBatis insert操作插入数据之后返回插入记录的id的知识点。 首先,MyBatis提供了一个机制来获取插入数据...

    Mybatis传list参数调用oracle存储过程的解决方法

    这种方法可以摆脱Mybatis批量插入数据的诸多限制,例如不能实时返回主键、foreach标签循环集合长度有限制等问题,并且可以灵活地控制事务回滚。 结论 使用Mybatis传List参数调用Oracle存储过程,可以实现批量插入...

    mybatis返回插入的id1

    总结一下,MyBatis 中插入数据并返回插入记录的 ID 主要涉及以下知识点: 1. 使用 `&lt;insert&gt;` 标签定义插入语句。 2. 设置 `useGeneratedKeys="true"` 开启获取自增主键的功能。 3. 使用 `keyProperty` 指定对象的...

    MyBatis Generator tools 1.3.5 mysql oracle postgres配置及驱动包

    本资源提供了MyBatis Generator 1.3.5版本,包含了针对MySQL、Oracle和PostgreSQL数据库的配置XML以及对应的驱动包。 在使用MyBatis Generator时,首先要了解其核心概念: 1. **配置文件(generatorConfig.xml)**...

    mybatis反向生成工具-oracle,mysql版

    Oracle版适用于使用Oracle数据库的项目,而MySQL版则适用于基于MySQL数据库的项目。这两个版本可能在生成的代码中对数据库特性的处理上有所不同,例如数据类型映射、序列(Oracle)与自增ID(MySQL)的处理等。 ...

    springmybatis

    mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。 首先建立一个名字为 MyBaits 的 dynamic web project 1. 现阶段,你可以...

    MyBatis中insert操作返回主键的实现方法

    在MyBatis中,当你执行一个插入(insert)操作时,通常默认情况下,MyBatis不会返回新插入记录的主键值,而是返回插入的记录条数。然而,在某些业务场景下,我们可能需要获取到新插入记录的主键,以便进行后续的操作...

    mybatis insert返回主键代码实例

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

Global site tag (gtag.js) - Google Analytics