servce层获得 mybatisPlus 插入后bigint类型的自增主键
时间: 2024-01-13 12:02:24 浏览: 33
在使用 MybatisPlus 插入数据时,如果表中有自增主键(如 MySQL 中的 bigint 类型的自增主键),可以通过以下方式获取插入后的主键值:
1. 在实体类中使用 @TableId 注解标注自增主键,并设置注解的 type 属性为 IdType.AUTO,示例代码如下:
```java
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
// getter and setter methods
}
```
2. 在 Service 层中使用 MybatisPlus 提供的 save 方法插入数据,示例代码如下:
```java
User user = new User();
user.setName("张三");
user.setAge(20);
userService.save(user);
Long id = user.getId(); // 获取插入后的主键值
```
注意:在插入数据时,如果使用 MybatisPlus 提供的 saveOrUpdate 方法,需要先判断实体类中的自增主键是否为 null,如果不为 null,则认为该数据已存在,会执行更新操作而不是插入操作,此时无法获取插入后的主键值。
相关问题
servce层获得 mybatisPlus 插入后的自增主键
在 MybatisPlus 中,插入数据时可以通过参数返回值来获取自增主键的值。
在 Service 层中,可以通过以下步骤来获得插入后的自增主键:
1. 在 Mapper 接口中定义插入方法,使用注解 @Insert,同时设置 keyProperty 属性为自增主键的字段名,如下所示:
```java
@Insert("insert into user(name, age) values(#{name}, #{age})")
@Options(useGeneratedKeys = true, keyProperty = "id")
int insert(User user);
```
2. 在 Service 层中调用 Mapper 接口的插入方法,并获取插入后的自增主键的值,如下所示:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public int addUser(User user) {
int result = userMapper.insert(user);
// 获取自增主键的值
Long id = user.getId();
return result;
}
}
```
这样就可以在 Service 层获得 MybatisPlus 插入后的自增主键了。
/etc/servce
引用[1]中的内容是一个命令行操作,它创建了一个符号链接,将"/root/soft/frp/systemd/frps.service"链接到"/etc/systemd/system/multi-user.target.wants/frps.service"。这个操作可能是为了将frps服务添加到系统启动项中。
引用[2]中的内容是关于CentOS 6系统中修改主机名和hosts文件的操作。在"/etc/sysconfig/network"文件中修改主机名,然后在"/etc/hosts"文件中添加相应的主机名和IP地址的映射。修改完后需要重启服务器才能生效。
引用[3]中的内容是关于启动frps服务时出现的错误信息。错误代码203/EXEC表示执行命令时出现问题。具体原因需要进一步分析。
问题: "/etc/servce"是什么意思?
回答: "/etc/servce"是一个错误的路径,可能是用户输入错误或者是一个不存在的路径。请确认输入的路径是否正确。