Insight mybatis insert useGeneratedKeys

来源:互联网 发布:手机如何发布淘宝宝贝 编辑:程序博客网 时间:2024/05/14 18:28

有这么一个场景:

使用mybatis insert操作,需要新增记录的主键Id,可以配置useGeneratedKeys=true 并且keyProperty=xxx。

这样,mybatis 就把主键Id回填至入参object。

useGeneratedKeys 是怎样实现的?

首先需要明确的是,insert 执行完成后,才发生的主键回填的事件。如下所示:


其次,主键生成分为auto 或者人工指定(包括sequence),useGeneratedKeys做了两种适配。

1.通过Jdbc接口查询自增记录并回填,参考


2.人工指定的主键回填,参考:SelectKeyGenerator。


总结:

主键回填原来是这样的,豁然开朗。JDBC 接口需要认真读一读。

0 0