mybatisplus返回主键
时间: 2023-07-30 17:08:58 浏览: 218
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中,获取插入操作后自动生成的主键值可以通过以下两种方式实现:
1.使用`insert`方法的返回值获取主键值。在执行`insert`方法后,可以通过返回的`boolean`类型值判断插入操作是否成功,并通过实体类对象的主键属性获取自动生成的主键值。例如:
```java
User user = new User();
user.setName("test");
user.setAge(18);
boolean result = userMapper.insert(user);
if (result) {
Long id = user.getId(); // 获取自动生成的主键值
}
```
2.使用`@TableId`注解的`type`属性指定主键生成策略。在实体类的主键属性上添加`@TableId`注解,并通过`type`属性指定主键生成策略,例如`IdType.AUTO`表示自动增长,`IdType.ID_WORKER`表示使用雪花算法生成主键。在执行`insert`方法后,实体类对象的主键属性会自动填充生成的主键值。例如:
```java
@Data
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
}
User user = new User();
user.setName("test");
user.setAge(18);
userMapper.insert(user);
Long id = user.getId(); // 获取自动生成的主键值
```
mybatisplus多主键查询
根据提供的引用内容,Mybatis-Plus提供了多种方法来进行查询操作,其中包括多主键查询。下面是一个使用Mybatis-Plus进行多主键查询的例子:
```java
// 定义多主键实体类
@TableName("user_role")
public class UserRole implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "user_id", type = IdType.INPUT)
private Long userId;
@TableId(value = "role_id", type = IdType.INPUT)
private Long roleId;
// 省略getter和setter方法
}
// 在Mapper接口中定义多主键查询方法
public interface UserRoleMapper extends BaseMapper<UserRole> {
List<UserRole> selectByUserAndRole(@Param("userId") Long userId, @Param("roleId") Long roleId);
}
// 在Service中调用多主键查询方法
List<UserRole> userRoleList = userRoleMapper.selectByUserAndRole(1L, 2L);
```
在上面的例子中,我们定义了一个多主键实体类`UserRole`,其中包含了两个主键`userId`和`roleId`。在Mapper接口中,我们定义了一个名为`selectByUserAndRole`的多主键查询方法,该方法接收两个参数`userId`和`roleId`,并返回一个`List<UserRole>`类型的结果集。在Service中,我们调用了该方法,并传入了两个主键值1L和2L,最终得到了符合条件的结果集。
阅读全文