JavaMybatis获取自增Id
前言:使用MySQL
和Mybatis
进行数据新增操作时,通常需要获取刚刚插入数据的ID(主键)。这主要用于关联操作或者是需要立即使用这个新生成的ID的场景
使用useGeneratedKeys和keyProperty
这是获取新插入记录ID的常用方法。在Mybatis的mapper文件中进行SQL映射时,可以通过在<insert>
标签中添加useGeneratedKeys="true"
和keyProperty="id"
(假设你的主键属性名为id)来实现。这会使Mybatis利用JDBC的getGeneratedKeys
方法来获取数据库自动生成的主键。
1 | <insert id="insertUser" useGeneratedKeys="true" keyProperty="id"> |
使用LAST_INSERT_ID()
在某些情况下,你可能需要在一个复杂的操作过程中获取最后插入的ID,或者useGeneratedKeys
方法因为某些原因不适用。这时,可以使用MySQL的LAST_INSERT_ID()
函数。这个方法在并发插入时也是安全的,因为它返回的是当前会话最后一次插入操作生成的ID。
1 | INSERT INTO user (name, email) VALUES ('张三', 'zhangsan@example.com'); |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 博客 - 常如意!
评论