概要
在进行数据库插入操作后,获取自增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 查看本文章