Mybatis Plus 怎么关闭useGeneratedKeys = false
时间: 2023-10-17 19:03:33 浏览: 83
Mybatis Plus 默认开启了 useGeneratedKeys = true,这表示在插入数据时,会自动获取自增主键的值并赋值给实体类中的相应属性。如果你想关闭这个功能,可以在插入数据时显式地指定 useGeneratedKeys = false,如下所示:
```java
User user = new User();
user.setName("Tom");
user.setAge(18);
mapper.insert(user, false); // 第二个参数为 useGeneratedKeys = false
```
另外,你也可以在全局配置文件中配置:
```xml
<global-config>
<db-config>
<insert-strategy use-generated-keys="false"/>
</db-config>
</global-config>
```
这样就可以全局关闭 useGeneratedKeys 了。
相关问题
mybatis中 useGeneratedKeys="true" keyProperty="id"这两个属性的作用
`useGeneratedKeys="true"`表示在向数据库插入新记录时,使用数据库自动生成的主键值。如果设置为`false`,则需要手动设置主键值。
`keyProperty="id"`表示将主键值赋值给Java对象中的哪个属性。这里的`id`是Java对象的属性名,需要与数据库中的主键列名一致。
举个例子,假设我们有一个`User`类,其中包含`id`、`name`、`age`三个属性,而数据库表中也有`id`、`name`、`age`三个列。如果我们想在向数据库插入新用户时,自动获取主键值并设置到`User`对象的`id`属性中,那么可以这样配置`<insert>`标签:
```xml
<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
insert into user(name, age) values(#{name}, #{age})
</insert>
```
这样,在执行`insertUser`操作时,MyBatis会自动获取数据库生成的主键值,并将其设置到`User`对象的`id`属性中。
useGeneratedKeys="true"
useGeneratedKeys="true" 是 MyBatis 的一个属性,用于设置是否使用自动生成的主键。当使用数据库自动生成主键时,可以将该属性设置为 true,然后在插入数据后,通过获取返回的主键值来获取生成的主键。例如:
```
<insert id="insertUser" parameterType="User" useGeneratedKeys="true">
INSERT INTO user (username, password) VALUES (#{username}, #{password})
</insert>
```
在这个例子中,当插入一条用户数据时,数据库自动生成了一个主键,MyBatis 会将该主键值返回给调用者。如果 useGeneratedKeys 属性值为 false,则不会返回主键值。
阅读全文