Java一个接口实现新增和修改

一、概述

数据库中无任何数据,首次点击保存按钮直接保存,第二次修改数据后点击保存按钮会进行判断,将修改的数据覆盖原有的数据

二、代码

    @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);
    }

猜你喜欢

转载自blog.csdn.net/Jiang5106/article/details/130244563