MyBatis获取新增信息生成的主键

使用MyBatis提供的@Options注解来获取生成的主键

MyBatis获取新增信息生成的主键

有些时候需要用到新增信息的主键,此时可以使用MyBatis提供的**@Options**注解来获取生成的主键

示例:

1
2
3
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into ……")
void insert(Emp emp);

keyProperty的值是决定将返回的主键的封装到哪个属性,我的Emp表的主键是id,所以此处为id

通过这个操作,即可获取到生成的主键的值。此时就可以在Service实现类中调用get方法使用新增信息的主键的值

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
public void save(Emp emp) {
    // 保存员工的基本信息
    emp.setCreateTime(LocalDateTime.now());
    emp.setUpdateTime(LocalDateTime.now());
    empMapper.insert(emp);

    // 保存员工工作经历信息
    List<EmpExpr> exprList = emp.getExprList();
    if (!CollectionUtils.isEmpty(exprList)) {
        exprList.forEach(empExpr ->
            // 刚刚获取了主键,所以此时可以使用getId()方法来使用新增信息的主键的值
            empExpr.setEmpId(emp.getId())
        );
        empExprMapper.insertBatch(exprList);
    }
}
本站于2025年3月26日建立
使用 Hugo 构建
主题 StackJimmy 设计