spring boot mybatis plus 判断一个名称在数据库是否存在,存在后面加1,1有了加2
时间: 2024-02-18 14:06:02 浏览: 57
spring boot + mybatis plus
可以使用 Mybatis Plus 提供的 LambdaQueryWrapper 和 LambdaUpdateWrapper 来实现该功能。具体的实现方式如下:
1. 定义一个变量 suffix,表示要添加的后缀。
2. 构造一个 LambdaQueryWrapper 对象,使用 eq 方法设置查询条件。
3. 调用 selectOne 方法查询符合条件的记录。
4. 如果查询到了记录,说明名称已经存在,需要对名称进行递增操作。
5. 如果没有查询到记录,说明名称不存在,直接插入一条新的记录。
6. 对于递增操作,可以使用 update 方法,并使用 set 方法设置更新的值。
示例代码如下所示:
```java
String suffix = "";
LambdaQueryWrapper<MyEntity> queryWrapper = new LambdaQueryWrapper<MyEntity>().eq(MyEntity::getName, name);
MyEntity entity = myMapper.selectOne(queryWrapper);
if (entity != null) {
// 名称已存在,进行递增操作
suffix = String.valueOf(Integer.parseInt(entity.getName().substring(name.length())) + 1);
} else {
// 名称不存在,插入新记录
MyEntity newEntity = new MyEntity();
newEntity.setName(name + suffix);
myMapper.insert(newEntity);
}
LambdaUpdateWrapper<MyEntity> updateWrapper = new LambdaUpdateWrapper<MyEntity>()
.eq(MyEntity::getName, name)
.set(MyEntity::getName, name + suffix);
myMapper.update(null, updateWrapper);
```
需要注意的是,这里假设名称后面已经有数字,例如 "name1","name2" 等,这样才能正确地进行递增操作。如果名称不是这种格式,需要修改代码来适应实际情况。
阅读全文