mybatis在oracle插入对象后返回主键值

在mybatis中默认插入一条记录后,返回值为插入记录的条数。

现在想获取插入记录后,当前被插入的记录的主键值,需在insert方法中添加如下代码:

<insert id="insert" parameterType="cn.com.pm.ppm.model.UserInfo" >

  <selectKey resultType="java.math.BigDecimal" order="BEFORE" keyProperty="id">

           select T_USER_INFO_SEQ.nextval from dual

  </selectKey>

insert into T_USER_INFO

<trim prefix="(" suffix=")" suffixOverrides="," >

<if test="id != null" >

ID,

</if>

...

</insert>

添加以下代码后

  <selectKey resultType="java.math.BigDecimal" order="BEFORE" keyProperty="id">

           select T_USER_INFO_SEQ.nextval from dual

  </selectKey>

方法中获取到的返回值任然是插入的记录数

但是mybatis将主键值set到了插入的对象中

时间: 2024-10-27 12:51:58

mybatis在oracle插入对象后返回主键值的相关文章

Mybatis 插入数据后返回主键值

Oracle中获取刚刚插入记录的主键值: <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo">     <selectKey resultType="java.math.BigDecimal" order="BEFORE" keyProperty="id">    SELECT U_US

xorm插入数据库后返回主键自增id

golang使用xorm连接数据库后,插入结构体,无法返回自增主键id,饭后的主键id都是0.经过研究发现,如果给结构体id设置xorm tag,则会默认id为0,不会返回插入成功后的主键id. xorm文档中如下描述 1 package main 2 3 import ( 4 "fmt" 5 "time" 6 7 _ "github.com/go-sql-driver/mysql" 8 "github.com/go-xorm/xorm

Laravel 5 插入数据后返回主键ID

方法一: $info = DB::table('表名')->insertGetId(['imgName' => $fileName]);//图片名入库后返回添加数据行的主键ID 方法二:(适用于Mysql数据库) 执行原生SQL,然后返回新添加的主键ID值 语法:INSERT INTO 表名(字段1, 字段2, 字段3) VALUES (值1, 值2, 值3);SELECT @@IDENTITY AS returnName; #返回刚插入的数据的主键ID并起别名为 "returnNa

mybatis中useGeneratedKeys用法--插入数据库后获取主键值

前言:今天无意在mapper文件中看到useGeneratedKeys这个词,好奇就查了下,发现能解决我之前插入有外键表数据时,这个外键获取繁琐的问题,于是学习敲DEMO记录    在项目中经常需要获取到插入数据的主键来保障后续操作,数据库中主键一般我们使用自增或者uuid()的方式自动生成 问题:对于uuid使用Java代码生成的方式还比较容易控制,然而使用数据库生成的主键,这样我们就需要将插入的数据再查询出来得到主键,某些情况下还可能查询到多条情况,这样就比较尴尬了. 那有什么办法来插入数据

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

转:http://www.cnblogs.com/icerainsoft/p/4648900.html 很多时候,在向数据库插入数据时,需要保留插入数据的id,以便进行后续的update操作或者将id存入其他表作为外键. 但是,在默认情况下,insert操作返回的是一个int值,并且不是表示主键id,而是表示当前SQL语句影响的行数... 接下来,我们看看MyBatis如何在使用MySQL和Oracle做insert插入操作时将返回的id绑定到对象中. MySQL用法: <insert id=&qu

mybatis 插入数据并返回主键值

<insert id="insert" parameterType="com.pojo.TSubject" useGeneratedKeys="true" keyProperty="subjectid" > insert into t_subject ( parentid, subjectname, subjecttype, subjectitem, subjectanser, displaytype) value

MyBatis在Oracle中插入数据并返回主键的问题解决

引言:  在MyBatis中,希望在Oracle中插入数据之时,同时返回主键值,而非插入的条数... 环境:MyBatis 3.2 , Oracle, Spring 3.2   SQL Snippet in XML Configuration: <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo"> <selectKey resultType="

如何使用myBatis在数据库中插入数据并返回主键

在MyBatis中,希望在Oracle中插入数据的同时返回主键值,而非插入的条数. ① oracle使用 selectKey. U_USER_INFO_SEQ 是在数据库中定义好的这张表关联的序列sequence, Nextval是获取自增的id <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo"> <selectKey resultType=&quo

sql新增后返回主键

对于刚学的人来说有点帮助,新增后返回主键有两种方法: 1,返回自增的主键: 1 INSERT INTO 表名 2 (字段名1,字段名2,字段名3,…) 3 VALUES 4 (值1,值2,值3,…) 5 SELECT @@IDENTITY 2,返回主键也可以返回别的字段看需要:inserted.id这里的id可以是其他字段就是一个字段名,比如还可以返回inserted.name 1 INSERT INTO 表名 2 (字段名1,…) 3 OUTPUT inserted.id 4 VALUES 5