mybatis如何获取自动生成的主键值,请给一个具体实际
时间: 2024-03-15 17:44:51 浏览: 14
MyBatis获取自动生成的主键值的方式与直接使用数据库操作类似,也是通过返回结果来获取的。在使用MyBatis时,可以使用<selectKey>元素来获取自动生成的主键值。例如,假设有一个名为users的表,其中有一个自增主键id和一个名为name的列,可以使用以下Mapper XML配置来向表中插入一条记录并获取插入的id值:
```
<insert id="insertUser" parameterType="User">
<selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER">
SELECT LAST_INSERT_ID();
</selectKey>
INSERT INTO users (name) VALUES (#{name});
</insert>
```
在这个例子中,我们使用<selectKey>元素在插入数据后使用LAST_INSERT_ID()查询最后插入的自增主键值,并将该值赋给User对象的id属性。这个<selectKey>元素的order属性设置为AFTER,表示在插入数据之后执行查询,这样可以确保获取到正确的自增主键值。在执行插入操作时,只需传入一个User对象即可:
```
User user = new User();
user.setName("John Doe");
userMapper.insertUser(user);
Long id = user.getId();
```
在插入数据后,我们就可以从User对象中获取自动生成的主键值了。