mybatis insert后自动返回主键——mybatis笔记

问题:

我们常用的insert后可以返回主键再用这个主键去更新到别的表中

方案:

分类1,用于像 MySQL 和 SQL Server 这样的关系型数据库管理系统的自动递增字段mybatis insert后自动返回主键——mybatis笔记_第1张图片
需要注意的是当我们插入完成后主键会插入原来的参数对象中,即图中的Admin类a中,那么我们需要取主键的话用,a.getAid()方法即可取到自动插入的主键。
这里的方式是用于

分类2: 如oracle数据库
对于不支持自动生成主键列的数据库和可能不支持自动生成主键的 JDBC 驱动,MyBatis 有另外一种方法来生成主键。(如下方式摘自mybatis官网)
这里有一个简单(也很傻)的示例,它可以生成一个随机 ID(不建议实际使用,这里只是为了展示 MyBatis 处理问题的灵活性和宽容度):

<insert id="insertAuthor">
  <selectKey keyProperty="id" resultType="int" order="BEFORE">
    select CAST(RANDOM()*1000000 as INTEGER) a from SYSIBM.SYSDUMMY1
  selectKey>
  insert into Author
    (id, username, password, email,bio, favourite_section)
  values
    (#{id}, #{username}, #{password}, #{email}, #{bio}, #{favouriteSection,jdbcType=VARCHAR})
insert>

说明:
这里的

你可能感兴趣的:(mybatis笔记,mybatis,java,数据库)