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