Java中向数据库中插入数据后获取自增 ID 的方法

概要

在进行数据库插入操作后,获取自增ID的方式取决于你使用的数据库以及持久层框架。这里将提供几种常见的情况下获取自增ID的方法

1、MyBatis 使用 MySQL 数据库

如果在 MyBatis 中使用 MySQL 数据库进行插入操作,可以通过以下方式获取自增ID

在插入操作后使用 SELECT LAST_INSERT_ID() 查询最后插入的自增ID。

<insert id="insertUser" parameterType="User">
    <!-- 插入语句 -->
</insert>

<selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER">
    SELECT LAST_INSERT_ID()
</selectKey>

或者,可以在插入操作中使用 useGeneratedKeys=“true” 属性。

<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
    <!-- 插入语句 -->
</insert>

在这两种情况下,插入后会将自增ID设置到 User 对象的 id 属性中。

2、 MyBatis 使用 PostgreSQL 数据库

对于 PostgreSQL 数据库,可以在插入操作后通过 returning 子句获取自增ID

<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
    <!-- 插入语句 -->
    RETURNING id
</insert>

3、MyBatis-Plus 使用任何数据库

如果使用 MyBatis-Plus 进行数据库操作,不需要显式获取自增ID。MyBatis-Plus 会自动将插入后的自增ID设置到实体类的相应属性中。你只需要在实体类中将自增ID的属性与数据库字段进行映射即可。

public class UserService {
    
    

    @Autowired
    private UserMapper userMapper;

    public Long insertUser(User user) {
    
    
        userMapper.insert(user);
        return user.getId(); // 获取自增 ID
    }

    // 其他方法...
}

在插入操作后,id 属性会被设置为插入生成的自增ID。

总结

无论使用哪种方式,都可以轻松获取插入后的自增ID,具体取决于您的数据库和持久层框架的支持。

扫描二维码关注公众号,回复: 16707431 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_53902288/article/details/132280976
今日推荐