mybatisplus 没有insert返回主键
时间: 2023-09-06 08:03:35 浏览: 151
MyBatis Plus是一个便捷的持久层框架,它是基于MyBatis的增强版本。虽然MyBatis Plus提供了很多便利的方法和功能来简化开发过程,但是它并没有直接提供insert操作返回主键的功能。
在MyBatis Plus中,如果我们需要获取插入数据后的主键值,我们可以通过其他方式来实现。下面是一种常用的解决方法:
1. 在实体类中使用@TableId注解或者在对应的数据库表中设置主键自增。
2. 在进行插入操作后,通过实体类的getId()方法获取插入数据的主键。
例如,假设有一个名为User的实体类,其中定义了主键字段id以及其他相关属性。在进行插入操作后,可以使用以下代码来获取插入数据的主键:
```java
User user = new User();
user.setName("John");
// 其他属性设置...
userMapper.insert(user);
Long id = user.getId();
```
需要注意的是,如果你的数据库表没有设置主键自增或者实体类中没有使用@TableId注解指定主键字段,那么以上方法是无法获取到插入数据的主键值的。
总之,虽然MyBatis Plus没有直接提供insert返回主键的功能,但是我们可以通过其他方式来获取插入数据的主键值,例如设置主键自增或者使用@TableId注解。
相关问题
mybatisplus insert返回主键
MybatisPlus的insert方法可以返回主键值。在执行insert操作后,可以通过获取返回的对象来获取主键值。例如:
```java
User user = new User();
user.setName("张三");
user.setAge(20);
user.setEmail("zhangsan@example.com");
int result = userMapper.insert(user);
if(result > ){
Long id = user.getId();
System.out.println("插入成功,主键值为:" + id);
}
```
在上面的代码中,我们创建了一个User对象,并设置了name、age和email属性。然后调用userMapper的insert方法插入数据,并将返回值赋给result变量。如果插入成功,我们可以通过user对象获取主键值,并输出到控制台。
mybatisplus批量新增返回主键
可以使用Mybatis-Plus的`saveBatch`方法来实现批量新增并返回主键。具体步骤如下:
1.在实体类中添加`@TableId`注解,指定主键生成策略和主键字段名。例如:
```java
public class User {
@TableId(type = IdType.AUTO, value = "id")
private Long id;
private String name;
private Integer age;
// 省略getter和setter
}
```
2.在Mapper接口中继承`BaseMapper`,该接口提供了许多常用的CRUD方法,包括`saveBatch`方法。例如:
```java
public interface UserMapper extends BaseMapper<User> {
}
```
3.在Service层中调用`saveBatch`方法进行批量新增。例如:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public boolean saveBatch(List<User> userList) {
return userMapper.saveBatch(userList); }
}
```
4.在Controller层中调用Service层的`saveBatch`方法进行批量新增。例如:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/batch")
public boolean saveBatch(@RequestBody List<User> userList) {
return userService.saveBatch(userList);
}
}
```
5.在配置文件中开启useGeneratedKeys和keyProperty配置。例如:
```yaml
mybatis-plus:
global-config:
db-config:
# 开启主键自动生成
id-type: auto
# 开启批量插入返回主键
insert-strategy: useGeneratedKeys
# 指定主键字段名
key-property: id
```
以上就是使用Mybatis-Plus实现批量新增并返回主键的方法。
阅读全文