一、概述
数据库中无任何数据,首次点击保存按钮直接保存,第二次修改数据后点击保存按钮会进行判断,将修改的数据覆盖原有的数据
二、代码
@Override
public R<Object> add(List<MetaDataExtract> metaDataExtracts) {
int rows = -1;
for (MetaDataExtract metaDataExtract : metaDataExtracts) {
List<MetaDataExtract> metas = metaDataExtractMapper.selectAll(metaDataExtract.getCatalogNodeId());
for (MetaDataExtract meta : metas) {
if (metaDataExtract.getTableName().equals(meta.getTableName()) &&
metaDataExtract.getFieldName().equals(meta.getFieldName()) &&
metaDataExtract.getCatalogNodeId().equals(meta.getCatalogNodeId())) {
rows = metaDataExtractMapper.updateById(metaDataExtract);
}
}
if (rows == -1) {
Long id = HnDbNextId.getNextId("tp_meta_data_extract");
metaDataExtract.setId(id);
metaDataExtractMapper.insert(metaDataExtract);
}
}
return R.ok("保存成功");
}
.selectAll():查询数据库所有信息
rows = metaDataExtractMapper.updateById(metaDataExtract);
若修改成功则rows==1,说明数据库中已有此数据,无需重复保存,所以会跳过下面rows==-1从而不进行保存
//保存
@Insert("insert into tp_meta_data_extract(f_id,f_catalog_node_id,f_table_name,f_field_name,f_field_alias," +
"f_source_method,f_extract_method,f_default_value,f_verify_value)" +
" values(#{id},#{catalogNodeId},#{tableName},#{fieldName},#{fieldAlias}," +
"#{sourceMethod},#{extractMethod},#{defaultValue},#{verifyValue})")
int insert(MetaDataExtract metaDataExtract);
//查询数据库的所有信息
@Select("select f_id as id,f_catalog_node_id as catalogNodeId,f_table_name as tableName," +
"f_field_name as fieldName,f_field_alias as fieldAlias,f_source_method as sourceMethod," +
"f_extract_method as extractMethod,f_default_value as defaultValue,f_verify_value as verifyValue" +
" from tp_meta_data_extract where f_catalog_node_id=#{catalogNodeId}")
List<MetaDataExtract> selectAll(Long catalogNodeId);
//修改数据
@Update("update tp_meta_data_extract set f_catalog_node_id=#{catalogNodeId},f_table_name=#{tableName}," +
"f_field_name=#{fieldName},f_field_alias=#{fieldAlias},f_source_method=#{sourceMethod}," +
"f_extract_method=#{extractMethod},f_default_value=#{defaultValue},f_verify_value=#{verifyValue}" +
" where f_id=#{id}")
int updateById(MetaDataExtract metaDataExtract);
R<Object> add(List<MetaDataExtract> metaDataExtracts);
@PostMapping("/save")
@ApiOperation("保存")
@DisableEncryptResponse
public R<Object> add(@RequestBody List<MetaDataExtract> metaDataExtracts) {
return metaDataExtractService.add(metaDataExtracts);
}