解析XML字符串并存入数据库

这篇具有很好参考价值的文章主要介绍了解析XML字符串并存入数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


友情提醒:

先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。有用记得关注

第一章、功能需求和分析

1.1)具体需求

解析XML字符串,并将解析后得到的结果,按时存入数据库。

1.2)分析需求转为小的问题

①Xml字符串从哪里来,有没有具体示例?

回答:通过HttpCilent调用接口,返回Xml字符串

②用什么方式解析Xml字符串?

回答:将xml字符串转为json,再通过jsonObject获取数据后转为json字符串,将json字符串直接转为对象,存入数据库

③具体存入数据库的是哪些字段?

回答:与实体类对应的字段,根据具体业务决定

④按时存入的存入时间是?是以定时任务的方式吗?如何实现定时任务

回答:以定时任务每天早晚八点

第二章、解决方案

2.1)使用的框架和技术

springboot,mybatis-plus,json,定时任务。

2.2)需求中每个小问题的解决

①调用接口,获取Xml字符串

暂未写好文章来源地址https://www.toymoban.com/news/detail-798851.html

②Xml字符串解析为json,并获得具体数据
public class XmlUtil {

    public static String XmlToJson(String xmlString){
         xmlString = "<?xml version=\\\"1.0\\\" ?>\n" +
                "<RESULT>"+
                "<CLAZZ>"+
                 "<STUDENT>"+
                        "<STUDENT_ID>test1</STUDENT_ID>\n" +
                        "<STUDENT_NAME>test</STUDENT_NAME>\n" +
                        "<STUDENT_AGE>test1</STUDENT_AGE>\n"+
                 "</STUDENT>"+
                 " <STUDENT>"+
                        " <STUDENT_ID>test2</STUDENT_ID>"+
                        " <STUDENT_NAME>test2</STUDENT_NAME>"+
                        " <STUDENT_AGE>test2</STUDENT_AGE>"+
                 "</STUDENT>"+
                 "</CLAZZ>"+
                 "</RESULT>" ;

        JSONObject jsonObject = XML.toJSONObject(xmlString);
        System.out.println(jsonObject.getJSONObject("RESULT").getJSONObject("CLAZZ").get("STUDENT").toString());
        return  jsonObject.getJSONObject("RESULT").getJSONObject("CLAZZ").getJSONArray("STUDENT").toString();
    }
}
③数据库存入字段
@Service
public class ChginfoServiceImpl implements ChginfoService {


    @Autowired
    StudentMapper studentMapper;

    //接收json字符串,插入数据库
    public Integer insertChgData(String chgjson) {
        //创建objectMapper对象
        ObjectMapper objectMapper = new ObjectMapper();
        //忽略字段设置
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

/*        Student stu=null;
        try {
            //简单json直接解析转为对象,--》简单的步骤
            chg = objectMapper.readValue(chgjson, Student.class);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        Integer num = studentMapper.insert(stu);        */
         Student stu=null;
         List<Student> stuList = new ArrayList<>();
        try {
            //json数组解析转为对象--》更复杂的步骤
            //1、创建工厂对象
            TypeFactory typeFactory = objectMapper.getTypeFactory();
            //2、创建 具体实体类 的JavaType类型
            JavaType jsonPersonType = typeFactory.constructType(Student.class);
            //将jsonPersonType转化成List<JsonPerson>类型,则也就是要创建List<>内有参数的JavaType类型
            // 即 constructParametricType(List.class, jsonPersonType)---> List<JsonPerson>
            JavaType javaType = typeFactory.constructParametricType(List.class, jsonPersonType);
            //将传入的chgjson字符串,转为List<Student>对象
            stuList = objectMapper.readValue(chgjson, javaType);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }

        //遍历存入数据
        for(Student s: stuList){
            studentMapper.insert(s);
        }

        return 1;
    }


}
④定时任务实现

到了这里,关于解析XML字符串并存入数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包