mybatisplus 新增时不写主键字段示例
时间: 2023-11-10 22:02:02 浏览: 56
在 MybatisPlus 中,如果实体类主键字段使用的是自增长策略,可以在新增时不写主键字段。示例如下:
```
User user = new User();
user.setUsername("test");
user.setPassword("123456");
user.setAge(18);
user.setCreateTime(new Date());
userMapper.insert(user);
```
这样会自动生成一个主键值并插入到数据库中。
注意:如果实体类主键字段不是自增长策略,则必须在新增时设置主键值。
相关问题
mybatisplus 新增时不写主键字段
MybatisPlus新增时不写主键字段会出现以下两种情况:
1. 若实体类中主键字段使用的是数据库自增长策略,可以不写主键字段,MybatisPlus会自动忽略该字段并将其置为null,数据库会自动生成主键值。
2. 若实体类中主键字段没有使用数据库自增长策略,则必须在插入前手动设置主键字段的值,否则会报错。
mybatisplus中插入数据获取主键值示例代码
MybatisPlus是一个基于Mybatis3的增强工具,它简化了开发过程中的大量重复代码的编写,提高了开发效率。在MybatisPlus中插入数据获取主键值示例代码如下:
首先定义一个实体类,假设名称为User,其中id为主键,使用@TableId注解标注。
```
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
// ...
}
```
接下来在对应的Mapper接口中定义插入数据方法insertUser,并使用@Options注解指定获取主键值的方式为自动生成。
```
public interface UserMapper extends BaseMapper<User> {
@Insert("INSERT INTO user(name) values(#{name})")
@Options(useGeneratedKeys = true, keyColumn = "id", keyProperty = "id")
void insertUser(User user);
}
```
在程序中调用insertUser方法插入数据,并获取到插入后的主键值。
```
User user = new User();
user.setName("Tom");
userMapper.insertUser(user);
Long id = user.getId(); // 获取主键值
```
通过这样的方式,就可以在MybatisPlus中插入数据的同时获取到自动生成的主键值。