zhongrj
2024-04-01 2a25716cfb1820a5901d2f72b9a49b0443ce7459
数据同步排除geomery 类型同步
1 files modified
11 ■■■■■ changed files
src/main/java/org/springblade/binlog/listener/TourBinLogListener.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/binlog/listener/TourBinLogListener.java
@@ -97,18 +97,20 @@
        List<String> valueList = new ArrayList<>();
        // 遍历匹配数据
        dataProperty.forEach((key,value)->{
            log.info("数据类型 " + value.dataType);
//            log.info("数据类型 " + value.dataType);
            if(null!=data.get(key)) {
                keyList.add(key);
                if (value.dataType.equals("varchar") ||
                    value.getDataType().equals("char")) {
                    valueList.add("'" + data.get(key).toString() + "'");
                }else if(value.dataType.equals("text") ||
                    value.dataType.equals("geometry") ||
                    value.dataType.equals("mediumtext") ||
                    value.dataType.equals("longblob")) {
                    byte[] bytes = (byte[])data.get(key);
                    valueList.add("'" + new String(bytes) + "'");
                }else if (value.dataType.equals("geometry")) {
                    // 该类型设置空,解析异常-尚未解决
                    valueList.add("'" + null + "'");
                }else if(value.dataType.equals("date") ||
                    value.getDataType().equals("datetime")) {
                    Long time = Long.parseLong(data.get(key).toString());
@@ -145,16 +147,17 @@
        List<String> updateList = new ArrayList<>();
        // 遍历匹配数据
        dataProperty.forEach((key,value)->{
            log.info("数据类型 " + value.dataType);
//            log.info("数据类型 " + value.dataType);
            if(null!=data.get(key) && !key.equals("id")) {
                if (value.dataType.equals("varchar") ||
                    value.getDataType().equals("char")) {
                    updateList.add(key + " = '" + data.get(key).toString() + "'");
                }else if(value.dataType.equals("text") ||
                    value.dataType.equals("geometry") ||
                    value.dataType.equals("mediumtext")) {
                    byte[] bytes = (byte[])data.get(key);
                    updateList.add(key + " = '" + new String(bytes) + "'");
                }else if(value.dataType.equals("geometry")) {
                    // 该类型不操作
                }else if(value.dataType.equals("date") ||
                    value.getDataType().equals("datetime")) {
                    Long time = Long.parseLong(data.get(key).toString());