获取本地的json文件解析存入数据库中

工作时有这个需求存一下,给了我json文件让我存进数据库中

例如:这个是json中的文件需要将他们存入数据库中

获取本地的json文件解析存入数据库中_第1张图片

 1、先存入依赖


    com.alibaba
    fastjson
    1.2.67

2、这是自己创建的表,并创建goods类将getset方法都弄一下

我用的是SpringBoot + mybatis-plus做的数据库是用postgresql

获取本地的json文件解析存入数据库中_第2张图片

什么getset方法加上

获取本地的json文件解析存入数据库中_第3张图片

 3、mapper层和srevice层mapper.xml

 3.1这是mapper层

@Repository
public interface GoodsMapper extends BaseMapper {
    List insert(@Param("link") String link,@Param("title") String title,@Param("des") String des);

}

3.2这是Service层

public interface GoodsService extends IService {
}

3.3这是mapper.xml,这里我用了传参将他们添加到数据库



//这里路径是上面mapper层的路径


    

4、我是直接在test测试里面直接用的

package com.gzh.studentdemo;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.gzh.Mapper.GoodsMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.io.*;

@SpringBootTest
class StudentDemoApplicationTests {
    @Autowired
    private GoodsMapper goodsMapper;

    @Test
    void contextLoads() {

        String filePath = "D:\\datas\\ybds.currtic.top\\2.json";//这里路径为你本地的json路径
        FileInputStream fin = null;
        try {
            fin = new FileInputStream(filePath);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        InputStreamReader reader = new InputStreamReader(fin);
        BufferedReader buffReader = new BufferedReader(reader);
        String strTmp = "";
        while (true) {
            try {
                if (!((strTmp = buffReader.readLine()) != null)) break;
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println(strTmp);

            JSONArray jsona = (JSONArray) JSONArray.parse(strTmp);//将获取的json数据转成JSONArray类型
            System.out.println(jsona);

            for (int i = 0; i < jsona.size(); i++) {
                JSONObject jsonObject = jsona.getJSONObject(i);
                String link = jsonObject.getString("link");//里面的值是你json中key的值
                String title = jsonObject.getString("title");
                String des = jsonObject.getString("des");
                System.out.println("link:" + link + ";title:" + title + ";des:" + des);
                goodsMapper.insert(link, title, des);用mapper方法将参数传过去,存入数据库
            }
        }
    }
}

到这里就完成啦,到这一步时获取的json数据是字符串类型的怎么转都转不过去,找了一下午才找到的,最后也是成功将数据存进去,希望对你有帮助

你可能感兴趣的:(json,java,spring,boot,postgresql,mybatis)