selectKey
selectKey 是在插入数据之前,先执行一个查询语句,来获取主键值,将其设置到实体类中,再执行插入语句。
select seq_user.nextval from dual insert into user(id, name) values (#{id}, #{name})
useGeneratedKeys
useGeneratedKeys 是在插入数据之后,获取自增主键值,将其设置到实体类中。
insert into user(name) values (#{name})
使用selectKey时,可以指定order属性,指定查询语句执行的顺序,默认为BEFORE,也可以指定为AFTER,表示在插入数据之后执行查询语句。
使用useGeneratedKeys时,可以指定keyProperty属性,指定实体类中的属性名,用来接收自增主键值。