spring boot mybatis plus 添加字段,如果有重复的名字就给他后面的加1,如果有1,就加2
时间: 2024-02-17 07:04:02 浏览: 42
您可以通过以下方式实现在添加字段时,如果有重复的名称就给它后面的加1,如果有1,就加2:
1. 首先,在数据库中添加一个新字段,并给它一个唯一的名称。
2. 在实体类中添加与数据库中新字段对应的属性,并使用@TableField注解将其与数据库中的字段进行映射。
3. 在Mapper.xml文件中添加新字段的SQL语句,并将新字段的值设置为“#{fieldName}”。
4. 在Service层中编写一个方法,用于检查新的字段名称是否已经存在。如果不存在,则直接返回实体类对象;如果存在,则给名称后面加上一个数字,并更新实体类中对应的属性。如果加1后还是重复的名称,则再加上1,以此类推。
以下是示例代码:
```java
@Service
public class YourService {
@Autowired
private YourMapper yourMapper;
public YourEntity addField(YourEntity entity) {
String fieldName = entity.getFieldName();
List<YourEntity> list = yourMapper.selectList(new QueryWrapper<YourEntity>().eq("field_name", fieldName));
if (list == null || list.isEmpty()) {
yourMapper.insert(entity);
return entity;
} else {
int suffix = 1;
while (true) {
String newName = fieldName + suffix;
List<YourEntity> newList = yourMapper.selectList(new QueryWrapper<YourEntity>().eq("field_name", newName));
if (newList == null || newList.isEmpty()) {
entity.setFieldName(newName);
yourMapper.insert(entity);
return entity;
} else {
suffix++;
if (suffix % 2 == 0) {
suffix++;
}
}
}
}
}
}
```
在上面的代码中,我们首先查询数据库中是否存在名称为fieldName的记录。如果不存在,则直接插入实体类对象entity并返回。否则,我们给名称后面加上一个数字suffix,并查询数据库中是否存在名称为fieldName+suffix的记录。如果不存在,则将实体类对象的名称设置为fieldName+suffix并插入数据库中。否则,我们将suffix加1并重复这个过程。如果加1后的名称已经存在,我们再加上1,以此类推。但是,如果suffix是1,我们会先加上2再继续执行。
阅读全文