数据库联系的表更改信息,git的时候,数据丢失,省市县三级联动。解决解决SpringBoot启动时异常:BeanDefinitionStoreException和ConflictingBeanDefi

一、对于数据关联的两张表,对两张表里的属性进行更改

1. 思路就是,先找出每张表需要修改的字段,如果有两张表都需要修改的话,就在两个实体类里面生成对应的字段,修改同一个数据,保证数据的一致性。

2. 定义一个完整的实体类,用来接收前端返回的数据,然后用两个表的属性的VO进行接受,然后操作数据库

如:

    <update id="updateQShouInfo">
        UPDATE om_term_info
        SET
            out_region_name = #{out_region_name},
            out_term_ship_ship_time = #{ship_time},
            out_term_ship_take_address = #{out_term_ship_take_address},
            branch_name = #{branch_name},
            out_logistics_provider_info_name = #{out_logistics_provider_info_name},
            logistics_name = #{logistics_name},
            logistics_phone = #{logistics_phone},
            ship_state=#{ship_state}
        WHERE term_sn = #{term_sn}
    </update>
    <update id="updateQShouShip">
        UPDATE out_term_ship
        SET
            ship_time = #{ship_time},
            branch_name = #{branch_name},
            bank_contacts = #{bank_contacts},
            bank_tel = #{bank_tel}
        WHERE term_sn = #{term_sn}
    </update>

二、git数据丢失!!!!!!(我的就是因为冲突,合并给我的干没了)

1. 对于数据丢失的问题,第一时间先去看git分支里面,有没有当时的分支,有的话提取出来就好了。

在这里插入图片描述

2. 去查看搁置(上一篇有)

在这里插入图片描述

3. 什么都没了!!!!也还有办法

在这里插入图片描述

在这里插入图片描述

4. 还有种,是通过git文件,但我没有,有需要的可以去搜索其他博主。

三、做省市县(数据库问题,redis缓存问题,如何解决访问速度问题等…问题真多)

1. 首先就是省市县数据,我找了很久,主流方法就是,注册高德或者腾讯的,我没去做,哈哈哈

2. 直接找数据,进行导入

其他博主的,完了,忘记谁的了,只有网盘了,不管了:
不知名的大佬

3. 然后,我不需要他的索引(可能因为我掌握不够),适用sql语句,删除索引

UPDATE 表名
SET 字段名= SUBSTRING_INDEX(last_column, ',', -1);

4. idea只显示500条数据,如何修改:设置里调

在这里插入图片描述

5. 用的递归和redis进行缓存(我的设计问题,导致redis变的很慢,需要修改)

递归:

   // 构建层级结构的方法
    private List<addDistrictDTO> buildHierarchy(List<addDistrictDTO> allDistrict, String parentCode) {
        //这里开始进入方法,传入的是我们的allDistrict(含值的对象),和parentcode的值
        List<addDistrictDTO> result = new ArrayList<>();
        //定义一个集合 result用于存放结果
        System.out.println("Building hierarchy for parentCode: " + parentCode);
        // 打印当前递归层级的父节点代码

        // 遍历所有的地区对象
        for (addDistrictDTO area : allDistrict) {
            System.out.println("Checking area: " + area.getCode() + ", parentCode: " + area.getParent_code());
            // 打印正在检查的地区代码和其父节点代码
            if ((parentCode == null && area.getParent_code()== null) || (parentCode != null && parentCode.equals(area.getParent_code()))) {
                //  如果是子地区,则递归调用 buildHierarchy 方法,构建子地区的树形结构
                List<addDistrictDTO> children = buildHierarchy(allDistrict, area.getCode());
                // 如果子地区列表不为空,将其设置为当前地区的子地区
                if (!children.isEmpty()) {
                    area.setChildren(children);
                }else {
                    area.setChildren(new ArrayList<>()); // 确保 children 始终初始化为空列表
                }
                // 将当前地区加入结果列表
                result.add(area);
            }
        }
        // 打印当前父节点下构建的结果
        System.out.println("Result for parentCode " + parentCode + ": " + result);
        return result;
    }

redis:

@Override
public List<addDistrictDTO> getAllDistrict() {
    // 尝试从Redis获取数据
    Map<Object, Object> districtHash = stringRedisTemplate.opsForHash().entries("District2");
    if (!districtHash.isEmpty()) {
        // Redis中有数据,转换为DTO对象列表
        Collection<Object> districtJsons = districtHash.values();
        List<addDistrictDTO> shopTypes = new ArrayList<>();
        for (Object json : districtJsons) {
            addDistrictDTO dto = JSONUtil.toBean(json.toString(), addDistrictDTO.class);
            shopTypes.add(dto);
        }
        return buildHierarchy(shopTypes, null);
    }

    // Redis中没有数据,从数据库查询
    List<addDistrictDTO> shopTypes = addMapper.getAllDistrict();
    if (shopTypes == null) {
        return null;
    }

    // 将数据存入Redis的哈希结构中
    Map<String, String> districtMap = new HashMap<>();
    for (addDistrictDTO dto : shopTypes) {
        String jsonStr = JSONUtil.toJsonStr(dto);
        districtMap.put(dto.getCode(), jsonStr);
    }
    stringRedisTemplate.opsForHash().putAll("District2", districtMap);
    stringRedisTemplate.expire("District2", 10, TimeUnit.MINUTES); // 设置过期时间

    return buildHierarchy(shopTypes, null);
}

四 、解决SpringBoot启动时异常:BeanDefinitionStoreException和ConflictingBeanDefinitionException

直接maven那里清理一下:maven clean
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值