欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > MyBatis中获取Mysql数据库插入记录的主键值

MyBatis中获取Mysql数据库插入记录的主键值

2025/10/6 2:54:09 来源:https://blog.csdn.net/qq_26893655/article/details/139773780  浏览:    关键词:MyBatis中获取Mysql数据库插入记录的主键值

在MyBatis中,你可以使用多种方式获取插入记录的主键值。以下是常见的几种方法:

1. 使用 useGeneratedKeyskeyProperty

这是MyBatis提供的最直接的方法。在你的Mapper XML文件中,使用 useGeneratedKeyskeyProperty 来指定MyBatis在插入记录后自动获取生成的主键值。

示例:

在这个例子中,idUser 对象中的主键属性,MyBatis会在插入记录后自动填充这个属性。

2. 使用 SELECT LAST_INSERT_ID() (适用于MySQL)

在某些数据库(如MySQL)中,你可以使用 SELECT LAST_INSERT_ID() 来获取最后插入的主键值。你可以在同一个事务中执行一个额外的查询来获取主键值。

示例:

<insert id="insertUser" parameterType="User">INSERT INTO users (name, email)VALUES (#{name}, #{email})
</insert><select id="getLastInsertId" resultType="int">SELECT LAST_INSERT_ID()
</select>

然后在Java代码中:

public int insertUser(User user) {userMapper.insertUser(user);return userMapper.getLastInsertId();
}

3. 使用 @Options 注解 (适用于MyBatis 3.x)

如果你使用注解来定义Mapper方法,可以使用 @Options 注解来配置 useGeneratedKeyskeyProperty

示例:

@Mapper
public interface UserMapper {@Insert("INSERT INTO users (name, email) VALUES (#{name}, #{email})")@Options(useGeneratedKeys = true, keyProperty = "id")void insertUser(User user);
}

在这个例子中,id 会自动填充到 User 对象的 id 属性中。

总结

最常用和推荐的方法是使用MyBatis自带的 useGeneratedKeyskeyProperty 功能,这种方式简单且易于维护。如果你的数据库不支持自动生成主键或你需要更多的控制,可以选择其他方法。选择哪种方法取决于你的具体需求和数据库环境。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词