spring boot mybatis plus 添加字段,如果有重复的名字就给他后面的加1,如果有1,就加2
时间: 2024-02-17 13:04:17 浏览: 150
可以通过以下步骤实现:
1. 定义一个方法来判断数据库中是否已存在需要添加的字段。可以使用Mybatis Plus提供的Wrapper条件构造器查询是否已存在该字段。
2. 如果已存在该字段,则需要对字段名进行处理。可以使用正则表达式匹配字段名中的数字,并根据匹配结果进行处理。
3. 如果匹配到了数字,则将数字加1,并在字段名后面添加新的数字;如果没有匹配到数字,则在字段名后面添加数字1。
4. 最后,使用Mybatis Plus提供的Mapper接口中的方法添加新字段即可。
以下是一个示例代码,供参考:
```java
@Service
public class MyService {
@Autowired
private MyMapper myMapper;
public void addField(String fieldName) {
// 判断数据库中是否已存在该字段
QueryWrapper<MyEntity> wrapper = new QueryWrapper<>();
wrapper.select(fieldName);
List<MyEntity> list = myMapper.selectList(wrapper);
if (list != null && !list.isEmpty()) {
// 如果已存在该字段,则对字段名进行处理
String newFieldName = fieldName.replaceAll("(\\d+)?$", (matchResult) -> {
if (matchResult.group(1) == null) {
return "1";
} else {
int num = Integer.parseInt(matchResult.group(1)) + 1;
return String.valueOf(num);
}
});
fieldName = newFieldName;
}
// 添加新字段
String sql = "ALTER TABLE my_table ADD COLUMN " + fieldName + " VARCHAR(32)";
myMapper.executeSql(sql);
}
}
```
注:上述代码中的 `MyEntity` 和 `MyMapper` 分别为实体类和Mybatis Plus的Mapper接口,需要根据实际情况进行替换。
阅读全文