美文网首页
mybatis主键返回

mybatis主键返回

作者: 万物皆有序和公式 | 来源:发表于2019-04-13 13:07 被阅读0次

在我们开发过程中,在插入数据到数据库时,很多时候都需要把其主键返回,这里就说一下mybatis是怎么获取的。

其中mysql和oracle是不同的做法,因为mysql本身就提供字段自增的属性,而oracle则需要使用序列。

mysql

<insert id="insert" parameterType="com.yitop.admin.domain.User" useGeneratedKeys="true" keyProperty="id">
insert into users (id, user_name, password, 
  real_name, status, email, 
  created_at, updated_at)
values (#{id,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, 
  #{realName,jdbcType=VARCHAR}, #{status,jdbcType=BIT}, #{email,jdbcType=VARCHAR},
  #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP})
</insert>

配置中,keyProperty表示返回的id要保存到对象的那个属性中,这里的名字要和对象的字段名对应上。而useGeneratedKeys表示主键id为自增长模式。mysql的话只要加上这两个属性就可以了,加上后会自动把主键set到对象的属性上。

oracle

<insert id="insert" parameterType="com.yitop.admin.domain.User">
   <selectKey resultType="INTEGER" order="BEFORE" keyProperty="id">  
       SELECT SEQ_USER.NEXTVAL as id from DUAL
   </selectKey> 
    insert into users (id, user_name, password, 
      real_name, status, email, 
      created_at, updated_at)
    values (#{id,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, 
      #{realName,jdbcType=VARCHAR}, #{status,jdbcType=BIT}, #{email,jdbcType=VARCHAR},
      #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP})
</insert>

因为oracle没有自增的说法,所以不能使用useGeneratedKeys了。而是使用selectKey把id获取并set到对象的属性中

相关文章

  • mybatis返回主键

    该标签的作用就是 查询主见 在标签内写入查询主键的sql 然后把查询出的主键按照设置到我们指定的对象字段中key...

  • mybatis主键返回

    在我们开发过程中,在插入数据到数据库时,很多时候都需要把其主键返回,这里就说一下mybatis是怎么获取的。 其中...

  • Mybatis 返回主键操作

    1.xml文件编写useGeneratedKeys和keyProperty 2.mapper.java类 3.测试...

  • MyBatis insert操作返回主键

    在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得...

  • [MyBatis insert实体返回主键]

    [MyBatis insert实体返回主键]记录一下这个http://blog.csdn.net/zhhandcs...

  • MyBatis 常见主键返回策略

    支持主键自增的数据库 在 标签中增加 useGenerateKeys 和 keyProperty 属性。 当使...

  • mybatis 返回新增自增主键id

    场景: 当我们设计数据库表主键id为自增主键时,通过mybatis新增插入一条数据,我们期望返回当前插入数据的主键...

  • mybatis设置返回自增主键失败原因

    mybatis 新增记录后返回自增主键id方式,即使添加了配置,发现userMapper.insert(user)...

  • mybatis插入数据时返回主键

    在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数但是业务需求要求获...

  • mybatis插入语句返回主键

    在使用插入语句insert的时候,我们可以选择直接让其返回id,代码如下:mapper.xml文件 dao接口文件...

网友评论

      本文标题:mybatis主键返回

      本文链接:https://www.haomeiwen.com/subject/nlmlwqtx.html