Mybatis-plus插入数据后怎么获取到插入数据的主键

在MyBatis-Plus中,插入数据后获取插入数据的主键可以通过以下方式实现:

使用@TableId(type = IdType.AUTO)注解:
如果你在实体类中使用了@TableId注解,并设置了type为IdType.AUTO,那么在插入数据后,插入的主键值会自动回填到实体类对应的属性中。

示例代码:

@TableName("user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    // 其他属性和方法
}

在执行插入操作后,你可以从实体对象中获取插入的主键值:

User user = new User();
user.setName("John");
user.setAge(25);
userMapper.insert(user);
Long primaryKey = user.getId(); // 获取插入的主键值

使用KeyHolder获取主键:
如果你使用的是JdbcTemplate进行数据插入操作,你可以通过KeyHolder来获取插入数据的主键值。

示例代码:

KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(new PreparedStatementCreator() {
    public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
        PreparedStatement ps = connection.prepareStatement("INSERT INTO user (name, age) VALUES (?, ?)", new String[]{"id"});
        ps.setString(1, "John");
        ps.setInt(2, 25);
        return ps;
    }
}, keyHolder);
Long primaryKey = keyHolder.getKey().longValue(); // 获取插入的主键值

以上两种方式都可以用来获取插入数据的主键值,你可以根据自己的项目需求选择合适的方法来实现。

你可能感兴趣的:(mybatis)