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

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

     对于 MySQL 数据库只需要设置 keyProperty、keyColumn、useGeneratedKeys 属性


     INSERT INTO students(last_name, birth)
     VALUES(#{lastName}, #{birth})
     对于 Oracle 数据库. 使用 selectKey

     
     
          SELECT my_seq.nextval FROM dual
     

     INSERT INTO students(id, last_name, birth)
     VALUES(#{id}, #{lastName}, #{birth})
    注意:Oracle用法中,需要注意的是:由于Oracle没有自增长一说法,只有序列这种模仿自增的形式,所以不能再使用“useGeneratedKeys”属性。
     而是使用将ID获取并赋值到对象的属性中,insert插入操作时正常插入id。

你可能感兴趣的:(#,Mybatis,mybatis,数据库,mysql,对象)