2024.4.15

第二十九天

所花时间:2小时

代码量:300

博客量:1

了解到的知识点:utils代码

package com.example.metroinfo.util;

import com.example.metroinfo.model.MetroLine;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.persistence.AttributeConverter;

public class MetroLineAttributeConverter implements AttributeConverter<MetroLine,String> {
    private static final ObjectMapper objectMapper = new ObjectMapper();

    @Override
    public String convertToDatabaseColumn(MetroLine attribute) {
        try {
            return objectMapper.writeValueAsString(attribute);
        } catch (JsonProcessingException e) {
            return null;
        }
    }

    @Override
    public MetroLine convertToEntityAttribute(String dbData) {
        try {
            return objectMapper.readValue(dbData, MetroLine.class);
        } catch (JsonProcessingException e) {
            return null;
        }
    }
}
package com.example.metroinfo.util;

import jakarta.persistence.AttributeConverter;
import jakarta.persistence.Converter;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

@Converter
public class StringListAttributeConverter implements AttributeConverter<List<String>, String> {

    private static final String DELIMITER = ",";

    @Override
    public String convertToDatabaseColumn(List<String> attribute) {
        if (attribute == null || attribute.isEmpty()) {
            return null;
        }
        return String.join(DELIMITER, attribute);
    }

    @Override
    public List<String> convertToEntityAttribute(String dbData) {
        if (dbData == null || dbData.isEmpty()) {
            return new ArrayList<>();
        }
        return Arrays.stream(dbData.split(DELIMITER))
                .map(String::trim)
                .collect(Collectors.toList());
    }
}
package com.example.metroinfo.util;

import com.example.metroinfo.service.MetroInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

@Component
public class LoadMetroInfoRunner implements CommandLineRunner {
    @Autowired
    MetroInfoService metroInfoService;
    @Override
    public void run(String... args) throws Exception {
        metroInfoService.loadAllMetroSystem();
    }
}

 

posted @ 2024-04-18 18:14  cvjj  阅读(13)  评论(0)    收藏  举报