在mybatis里面经常遇到生成主键的问题,使用自增或者序列,保存对象后对象里面有主键值,来看看是怎么处理的:
1、在BaseStatementHandler里面有生成generateKeys,主要是执行:
protected void generateKeys(Object parameter) {
KeyGenerator keyGenerator = mappedStatement.getKeyGenerator();
ErrorContext.instance().store();
keyGenerator.processBefore(executor, mappedStatement, null, parameter);
ErrorContext.instance().recall();
}
processBefore,
表示执行前处理,对应mapper里面的selectKey中的order="BEFORE"属性,先