mybatis新增后返回非自增的id
时间: 2023-07-05 07:14:47 浏览: 131
如果插入的表中的主键不是自增长的,而是由程序自动生成的,那么可以使用 `selectKey` 元素来实现在插入后返回主键值。
在 Mapper.xml 文件中,需要在插入语句的 `<insert>` 标签中添加 `selectKey` 元素,同时需要设置 `keyProperty` 属性为需要返回的主键字段名,并设置 `order` 属性的值为 `"AFTER"`,表示在插入语句之后执行。
例如,假设插入的表中的主键为 `uuid`,可以这样写:
```xml
<insert id="insertUser" parameterType="com.example.User">
<selectKey keyProperty="uuid" resultType="java.lang.String" order="AFTER">
select uuid()
</selectKey>
insert into user (name, age, uuid) values (#{name}, #{age}, #{uuid})
</insert>
```
在使用 MyBatis 的 `insert` 方法插入数据时,如果插入成功,就可以通过获取 `User` 对象的 `uuid` 属性来获取主键值。
```java
User user = new User();
user.setName("张三");
user.setAge(20);
userMapper.insertUser(user);
System.out.println(user.getUuid());
```
阅读全文