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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值