mybatis的insert语句插入数据时的返回值的实现

mybatis的sql语句一般是配置在配置文件中,现先给出一个例子,

sqlMap.xml文件中的一条插入语句:

<insert id="add" parameterClass="xxx">
    insert into A(a, b, c, d)
    VALUE
    (#a#, #b#, #c#, #d#)
</insert>

以上的代码片段只是最简单的插入语句,上面这条SQL语句无论执行结果是成功还是失败,它的返回值都是null

如果想要在执行插入之后得到某个非null的返回值,上面那条sql语句需要再加点‘料':

<insert id="add" parameterClass="xxx">
    insert into A(a, b, c, d)
    VALUE
    (#a#, #b#, #c#, #d#)
    <selectKey resultClass="java.lang.Integer" keyProperty="id" >
      SELECT @@IDENTITY AS ID
    </selectKey>
</insert>

这样写的话当插入一条数据的时候,该插入操作的返回值就是刚刚插入的 那条记录的主键值。

到此这篇关于mybatis的insert语句插入数据时的返回值的实现的文章就介绍到这了,更多相关mybatis insert返回值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

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

    项目使用springboot搭建.最初的时候是使用mybatis,后来升级到mybatis plus.按照mp的官网介绍,使用mp的insert方法,对于自增的数据库表,mp会把主键写入回实例的对应属性.但实际操作起来,却没有主键. entity 类设置如下: @TableName(value = "USERINFO") public class UserInfo { /** * 指定自增策略 */ @TableId(value = "user_id",type =

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

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

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

    在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle.DB2,可以采用如下配置方式: <insert id="add" parameterType="vo.Category"> <selectKey resultType="

  • mybatis insert返回主键代码实例

    这篇文章主要介绍了mybatis insert返回主键代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在使用ibatis插入数据进数据库的时候,会用到一些sequence的数据,有些情况下,在插入完成之后还需要将sequence的值返回,然后才能进行下一步的操作. 使用ibatis的selectKey就可以得到sequence的值,同时也会将值返回.不过对于不同的数据库有不同的操作方式. 对于oracle: <insert id="

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

    MyBatis插入数据的时候,返回该记录的id <insert id="insert" keyProperty="id" useGeneratedKeys="true"
 parameterType="com.demo.domain.CountRateConfig">
 insert into query_rate_config (code,partner_type,search_count, booking_co

  • mybatis的insert语句插入数据时的返回值的实现

    mybatis的sql语句一般是配置在配置文件中,现先给出一个例子, sqlMap.xml文件中的一条插入语句: <insert id="add" parameterClass="xxx"> insert into A(a, b, c, d) VALUE (#a#, #b#, #c#, #d#) </insert> 以上的代码片段只是最简单的插入语句,上面这条SQL语句无论执行结果是成功还是失败,它的返回值都是null 如果想要在执行插入之后

  • MYSQL插入数据时检查字段值是否重复的方法详解

    项目需求 现有一张u_ps的车位信息表,对应每个小区的车位id ps_id自增长,每个车位又对应车位编号num,车位id由自增长,车位编号可以根据自己小区情况手动添加设置,但是不能重复,车位编号不能重复.这就需要在新增车位信息的时候代码检验新增的该num在u_ps表中是否存在,存在则抛出异常,不存在则做插入操作. 问题关键 不同的小区community_id中车位num可以重复,如果分开设计表设置唯一约束是可行的,但是我们的需求是将所有的小区车位信息放在同一个表中,这就涉及到在插入一条数据的时候

  • 如何用注解的方式实现Mybatis插入数据时返回自增的主键Id

    目录 用注解实现Mybatis插入数据返回自增的主键Id 设计数据库表 设计Java bean对象 添加mapper接口 Mybatis注解增(返回自增id) 删查改以及(一对一,一对多,多对多) 数据库表 目录结构 导入坐标(包) 配置文件 实体类 mapper接口编写 测试 用注解实现Mybatis插入数据返回自增的主键Id 我们在数据库表设计的时候,一般都会在表中设计一个自增的id作为表的主键.这个id也会关联到其它表的外键. 这就要求往表中插入数据时能返回表的自增id,用这个ID去给关联

  • mybatis插入数据后如何返回新增数据的id值

    目录 1.自增主键情况下插入数据获取自增主键值 2.主键非自增的情况下获取主键值 3.keyColumn作用 总结 1.自增主键情况下插入数据获取自增主键值 mybatis为我们提供了一个方法,能够插入数据时获取自动生成的值,并且把取的值赋值给实体类的某一属性 设置方法: 要求:主键必须是自增的 <insert id = "insert" useGeneratedKeys = "true" keyProperty = "id">  

  • Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法

    本文实例讲述了Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法.分享给大家供大家参考,具体如下: 前言: 想把QQ日志爬虫(Python)爬下来的日志保存到 MongoDB 里面. 但 insert 的时候报错: E11000 duplicate key error collection: QQ.Blog index: _id_ dup key: { : "965464518_1301232446" } 后来知道错误的原因是:插入的数据和已有数据的 ID

  • MySQL插入数据时插入无效列的解决方法

    1.错误描述 com.mysql.jdbc.exception:jdbc4.MySQLSyntaxErrorException:Unknown column 'man' in 'field list' 2.错误原因 数据库表中的字段:sno sname sage ssex 插入数据时: sno sname sage man 本来是想插入ssex这个字段的值为"man",结果将man弄成了ssex字段名 3.解决办法 在插入时,给字符串类型的字段值加上双引号

  • Java版数据结构插入数据时遇到的结点为空的问题详解

    在演示Java版数据结构与算法教材中的头插法代码时遇到了空结点问题 . 先上代码. 链表类 import java.util.Scanner; public class ListLinked<T> { ListLinkedNode<Integer> head=new ListLinkedNode<Integer>();//声明头结点 //添加结点 public void addFromHead(int e){ ListLinkedNode<Integer>

  • MyBatis查询无记录时的返回值问题

    目录 MyBatis查询无记录的返回值 在MyBatis 3.4.1下 查询无结果时的返回值报错问题 mybatis的查询无结果时报错 MyBatis查询无记录的返回值 在MyBatis 3.4.1下 如果Dao的返回值是实体,则select查询无记录时返回null.容易报空指针异常! Notice findById(); 如果Dao的返回值是List,则select查询无记录是返回的是[],也就是空数组, 而不是null.所以这时候判空需要用CollectionUtils.isNotEmpty

  • mybatis中查询结果为空时不同返回类型对应返回值问题

    今天在别人的代码基础上实现新需求,看到对于mybatis查询结果的判断不是很正确,如果查询结果为空就会异常,不知道大家有没有这样的疑惑:mybatis中resultType有多种返回类型,对于每种不同类型,查询结果为空时dao接口的返回值是一样的吗?接下来我就总结一下常见的几种情况. 第一种:resultType为基本类型,如string(在此暂且把string归纳为基本类型) 如果select的结果为空,则dao接口返回结果为null 第二种,resultType为基本类型,如int 后台报异

随机推荐