`

MyBatis的insert之后如何返回自动生成的主键值

 
阅读更多

一、背景

有的时候需要返回插入值后DB自动增长生成的记录ID,在Mybatis的 环境下如何做呢?

 

二、代码示例

  <insert id="insert" parameterType="com.qunar.fax.model.qunar.entry.FaxSendNotify"  useGeneratedKeys="true" keyProperty="id">
        <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
            SELECT LAST_INSERT_ID() AS ID
        </selectKey>
        INSERT INTO fax_send_notify(
        header_action,
        taskId,
        tel_number,
        send_datetime,
        duration,
        fax_status,
        remote_id,
        error_msg,
        connect_speed,
        file_size,
        pages,
        status,
        send_pages,
        create_time,
        callback_time,
        retry_count,
        source,
        version
        )
        VALUE(
        #{headerAction},
        #{taskId},
        #{telNumber},
        #{sendDatetime},
        #{duration},
        #{faxStatus},
        #{remoteId},
        #{errorMsg},
        #{connectSpeed},
        #{fileSize},
        #{pages},
        #{status},
        #{sendPages},
        #{createTime},
        #{callBackTime},
        #{retryCount},
        #{source},
        #{version}
        )

    </insert>

 

    运行之后,能够自动将ID赋值到对象FaxSendNotify的id属性里面,so easy!

   补充一句,这是Mysql db下的示例

分享到:
评论

相关推荐

    MyBatis主键自动生成方法.pdf

    在`&lt;insert&gt;`标签内设置`useGeneratedKeys="true"`,MyBatis会尝试获取数据库自动生成的主键值。在MySQL中,执行`INSERT`语句后,可以通过`LAST_INSERT_ID()`函数获取最新插入行的主键值。MyBatis会将这个值自动设置...

    MybatisPlus中插入数据获取主键值示例代码

    当主键类型为整型并且设置了自增属性时,MybatisPlus会在插入数据后自动返回主键值。有两种方式可以获取这个值: 1. 使用`@TableId`注解:在实体类中,你可以通过在主键字段上添加`@TableId`注解来声明主键,并指定...

    Mybatis返回插入主键id的方法

    Mybatis提供了一种便捷的方式,允许我们在插入数据后返回自动生成的主键值。以下将详细介绍如何在Mybatis中实现这一功能。 首先,你需要在Mapper的XML文件中对`&lt;insert&gt;`标签进行配置。关键属性是`useGeneratedKeys...

    详解mybatis plus使用insert没有返回主键的处理

    这是因为 MP 的通用方法能够正确执行,将新生成的主键值回填到实体类的相应属性中。 总结来说,当使用 MyBatis Plus 插入数据时遇到主键未返回的问题,应检查以下几点: 1. 确保实体类中的主键字段已正确标注为自增...

    mybatis返回插入的id1

    当执行插入操作后,MyBatis 会自动将数据库生成的主键值填充到插入对象的 `id` 属性中。在 Java 代码中,我们可以直接访问这个属性来获取新插入记录的 ID,如下所示: ```java @Override public int insert...

    支持主键自增的数据库获取主键值.zip

    在对应的Java代码中,当你调用`sqlSession.insert("insertUser", user)`方法插入一条记录后,`user.getId()`就会返回数据库自动生成的主键值。这是因为MyBatis通过`useGeneratedKeys`和`keyProperty`属性与数据库...

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

    在执行`insertAndGetId`方法后,由于我们设置了`keyProperty="userId"`,MyBatis会将生成的主键值自动赋值给User对象的`userId`属性。因此,`user.getUserId()`会返回插入后的主键ID。 通过这种方式,我们可以轻松...

    Mybatis主配置文件、附配置文件、实体类、sql生成工具

    2. **insert**:用于定义插入语句,可以获取自增主键值。 3. **update**:用于定义更新语句。 4. **delete**:用于定义删除语句。 **三、实体类(Entity Class)** 实体类是Java对象,代表数据库中的表,用于封装...

    mybatis自增主键文档

    这样MySQL会在插入数据时自动分配并设置主键值,但同样不会将这个值返回给插入的对象。 3. **插入后获取自增主键值** 如果需要在插入数据后获取自增的主键值,MyBatis提供了`&lt;selectKey&gt;`元素来实现这一功能。这...

    mybatis入门demo

    - `&lt;insert&gt;`:定义插入语句,同样需要指定id和返回值,如果插入成功,MyBatis会返回自动生成的主键值。 - `&lt;update&gt;`:更新语句,id对应方法名,参数通常通过注解@Param传递。 - `&lt;delete&gt;`:删除语句,用法与`...

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

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

    MybatisPlus中插入数据后获取该对象主键值的实现

    通过设置`IdType.AUTO`,MybatisPlus会在插入数据时自动处理数据库的自增ID,然后将生成的主键值返回给插入的对象。无论是通过Service层的`saveOrUpdate`方法还是Mapper层的自定义`insert`方法,都能轻松实现这一...

    mybatis反向工程.根据数据库表生成wrapper xml文件和类

    当使用自增主键时,通常在数据库层面设置,MyBatis或MyBatis-Plus会自动处理插入后的主键值。如果需要联合主键,可以使用多个`@Id`注解或者自定义的复合主键类。 MyBatis-Plus是MyBatis的一个扩展,它提供了更丰富...

    Oracle+Mybatis的foreach insert批量插入报错的快速解决办法

    需要注意的是,如果你的表中有自增主键,可能需要在插入之前先获取主键值。这里使用了`&lt;selectKey&gt;`标签来获取序列的下一个值,确保每个插入的记录都有唯一的主键。 总之,当在Oracle数据库中使用MyBatis进行批量...

    SSM笔记-insert操作

    在这个例子中,`order_id`是预先计算好的,Mybatis不会尝试获取自动生成的主键值。 此外,Mybatis还支持动态SQL,通过`if`、`choose`、`when`、`otherwise`等标签,我们可以根据条件灵活地构造`insert`语句。例如,...

    mybatis数据操作(增删改查+批量操作)

    插入操作完成后,MyBatis会自动处理主键的生成策略,如果数据库支持自增主键,MyBatis会自动获取生成的主键值。 2. **删除操作(Delete)**:同样,删除操作也需要定义一个Mapper接口方法,并在XML文件中写好对应的...

    mybatis获取自增主键的值

    插入数据后,MyBatis会自动将新生成的主键值设置到对应的Java对象属性上。你可以直接从对象中读取这个值,无需额外的查询。 6. **MyBatis注解方式**: 如果你更倾向于使用注解,可以使用`@Options`注解配合`@...

    MyBatis_Plus

    3. **主键自增与回填**:对于主键自增的表,MyBatis_Plus 可以自动处理插入后的主键值,无需手动获取。 4. **分页查询**:MyBatis_Plus 内置了分页插件,能够方便地实现物理分页和逻辑分页,避免了手动编写复杂的...

    MyBatisDemo

    3. **&lt;insert&gt;**:定义插入数据的 SQL 语句,可以返回自动生成的主键值。 4. ****:定义更新数据的 SQL 语句。 5. ****:定义删除数据的 SQL 语句。 【MyBatis注解】 除了 XML 映射文件,MyBatis 也支持在实体类和...

Global site tag (gtag.js) - Google Analytics