KeyGenerator

Mybatis3.3.x技术内幕(十四):Mybatis之KeyGenerator

非 Y 不嫁゛ 提交于 2019-11-26 20:36:20
在Mybatis中,执行insert操作时,如果我们希望返回数据库生成的自增主键值,那么就需要使用到KeyGenerator对象。 需要注意的是,KeyGenerator的作用,是返回数据库生成的自增主键值,而不是生成数据库的自增主键值。返回的主键值放到哪儿呢?放到parameter object的主键属性上。 下面看看其接口定义。 public interface KeyGenerator { void processBefore(Executor executor, MappedStatement ms, Statement stmt, Object parameter); void processAfter(Executor executor, MappedStatement ms, Statement stmt, Object parameter); } 接口定义还是比较简单的,就是在insert前、insert后,策略处理主键值。 (Made In IntelliJ IDEA IDE) Jdbc3KeyGenerator:用于处理数据库支持自增主键的情况,如MySQL的auto_increment。 NoKeyGenerator:空实现,不需要处理主键。 SelectKeyGenerator:用于处理数据库不支持自增主键的情况,比如Oracle的sequence序列。