java遍历解析json数据并插入到数据库中(MySQL)

1.思路

  1. 读取json资源文件
  2. File转化为JSON串
  3. JSON串转对象集合
  4. 遍历插入到数据库

2.工具(jar包)

  • 使用spring-corefastjson,commons-io,mysql
  • 下面给出maven坐标

    commons-io
    commons-io
    2.4


    com.alibaba
    fastjson
    1.2.47


    org.springframework
    spring-core
    4.2.0.RELEASE



    mysql
    mysql-connector-java
    5.1.30
  • json文件
[{
  "id": 41,
  "name": "配合",
  "artist": "薛之谦",
  "url": "https://music.163.com/song/media/outer/url?id=1374061040.mp3",
  "cover": "http://p1.music.126.net/JL_id1CFwNJpzgrXwemh4Q==/109951164172892390.jpg",
  "lrc": "[00:03.523]作词 : 薛之谦/甘世佳\r\n[00:04.989]作曲 : 周以力/薛之谦\r\n[00:17.076]我接受驯化 我接受驯化\r\n[00:20.796]我伤口复杂 等待惩罚\r\n[00:24.877]我变成莲花 我变成莲花\r\n[00:28.843]世人要我脏 此外无他\r\n[00:32.877]叹息墙下 任人粉刷 要你对话 肆意喧哗\r\n[00:40.829]夺我白马 赐我利爪\r\n[00:44.927]这等变化你能更嗨吗\r\n[00:51.099]既妖魔化 又何惧真假 法外无它 我配合你一下 啊啊\r\n[00:59.106]面具下 谁也都伟大 恶能美化 那鹿就是马 愿你洁白无瑕\r\n[01:25.641]我们多融洽 我们多融洽\r\n[01:29.257]为逃避廉价 互相丑化\r\n[01:33.356]我梦见莲花 我梦见莲花\r\n[01:37.595]没习惯腐化 哪怕一霎\r\n[01:41.481]叹息墙下 脸皮涨价 谁先说话 忠于计划\r\n[01:49.375]分食白马 长出利爪\r\n[01:53.341]让我做个诱人的标靶 啊\r\n[02:01.726]既妖魔化 又何惧真假 法外无它 我配合你一下 啊啊\r\n[02:09.614]面具下 谁也都伟大 恶能美化 那鹿就是马 人人洁白无瑕\r\n[02:35.948]既妖魔化 没人信真假 我外无他 就配合你一下 啊啊 面具下 众生都伟大 自我矮化 还曲高和寡\r\n[02:56.566]若我火化 顺你意了吗 口诛笔伐 请你别停下 啊啊\r\n[03:05.805]不配伟大也不配笑话 最后一下 请妙笔生花 纪念那个傻瓜\r\n[03:22.597]制作人 : 周以力\r\n[03:22.948]编曲 : 周以力\r\n[03:23.257]吉他 : 张凇\r\n[03:23.530]贝斯 : 陈然然\r\n[03:23.783]鼓手 : 尹森\r\n[03:24.030]大提琴 : 郎莹\r\n[03:24.246]和音 : 薛之谦\r\n[03:24.446]录音师 : 鲍锐/王晓海\r\n[03:24.691]录音棚 : 北京有位音乐录音棚/北京录顶技录音棚\r\n[03:24.915]混音 : 鲍锐\r\n[03:25.113]母带 : 鲍锐"
}, {
  "id": 40,
  "name": "讲真的",
  "artist": "曾惜",
  "url": "https://music.163.com/song/media/outer/url?id=30987293.mp3",
  "cover": "https://p1.music.126.net/cd9tDyVMq7zzYFbkr0gZcw==/2885118513459477.jpg",
  "lrc": "[by:却连一句我爱你都不能说出口]\n[ti:讲真的]\n[ar:曾惜]\n[al:不要你为难]\n[by:冰城离殇]\n[00:00] 作曲 : 何诗蒙\n[00:01] 作词 : 黄然\n[00:18]今夜特别漫长\n[00:21]有个号码一直被存放\n[00:25]源自某种倔强\n[00:30]不舍删去又不敢想\n[00:33]明明对你念念不忘\n[00:37]思前想后愈发紧张\n[00:41]无法深藏\n[00:43]爱没爱过想听你讲\n[00:48]讲真的\n[00:51]会不会是我 被鬼迷心窍了\n[00:54]敷衍了太多 我怎么不难过\n[00:58]要你亲口说 别只剩沉默\n[01:03]或许你早就回答了我\n[01:06]讲真的\n[01:08]想得不可得 是最难割舍的\n[01:11]各自好好过 也好过一直拖\n[01:15]自作多情了 好吧我认了\n[01:19]至少能换来释怀洒脱\n[01:23]没丢失掉自我\n[01:42]今夜特别漫长\n[01:44]有个号码一直被存放\n[01:49]源自某种倔强\n[01:53]不舍删去又不敢想\n[01:57]明明对你念念不忘\n[02:01]思前想后愈发紧张\n[02:05]无法深藏\n[02:08]爱没爱过想听你讲\n[02:13]讲真的\n[02:15]会不会是我 被鬼迷心窍了\n[02:19]敷衍了太多 我怎么不难过\n[02:23]要你亲口说 别只剩沉默\n[02:27]或许你早就回答了我\n[02:30]讲真的\n[02:32]想得不可得 是最难割舍的\n[02:35]各自好好过 也好过一直拖\n[02:40]自作多情了 好吧我认了\n[02:44]至少能换来释怀洒脱\n[02:47]没丢失掉自我\n[03:04]讲真的\n[03:05]会不会是我 被鬼迷心窍了\n[03:09]敷衍了太多 我怎么不难过\n[03:14]要你亲口说 别只剩沉默\n[03:18]或许你早就回答了我\n[03:21]讲真的\n[03:22]想得不可得 是最难割舍的\n[03:26]各自好好过 也好过一直拖\n[03:30]自作多情了 好吧我认了\n[03:35]至少能换来释怀洒脱\n[03:38]没丢失掉自我\n"
}, {
  "id": 39,
  "name": "学猫叫",
  "artist": "小潘潘(潘柚彤)",
  "url": "https://music.163.com/song/media/outer/url?id=554191055.mp3",
  "cover": "https://p1.music.126.net/D1Ov-XMAwUzsr16mQk95fA==/109951163256119128.jpg",
  "lrc": "[00:00] 作曲 : 小峰峰\n[00:01] 作词 : 小峰峰\n[00:05]编曲:吕宏斌&塞米七\n[00:05]和声:小峰峰\n[00:05]混音:陈秋洁\n[00:05]制作人:小峰峰\n[00:05]唱片:麦袭时代\n[00:06]OP:百纳娱乐\n[00:06]\n[00:07]小潘潘:\n[00:08]我们一起学猫叫\n[00:10]一起喵喵喵喵喵\n[00:12]在你面前撒个娇\n[00:14]哎呦喵喵喵喵喵\n[00:16]我的心脏砰砰跳\n[00:18]迷恋上你的坏笑\n[00:21]你不说爱我我就喵喵喵\n[00:24]\n[00:24]小峰峰:\n[00:26]每天都需要你的拥抱\n[00:29]珍惜在一起的每分每秒\n[00:33]你对我多重要\n[00:35]我想你比我更知道\n[00:38]你就是我的女主角\n[00:41]\n[00:41]小潘潘:\n[00:42]有时候我懒的像只猫\n[00:45]脾气不好时又张牙舞爪\n[00:50]你总是温柔的\n[00:51]能把我的心融化掉\n[00:54]我想要当你的小猫猫\n[00:59]\n[01:00]合:\n[01:00]我们一起学猫叫\n[01:02]一起喵喵喵喵喵\n[01:04]在你面前撒个娇\n[01:06]哎呦喵喵喵喵喵\n[01:08]我的心脏砰砰跳\n[01:10]迷恋上你的坏笑\n[01:13]你不说爱我我就喵喵喵\n[01:16]\n[01:17]我们一起学猫叫\n[01:19]一起喵喵喵喵喵\n[01:21]我要穿你的外套\n[01:23]闻你身上的味道\n[01:25]想要变成你的猫\n[01:27]赖在你怀里睡着\n[01:30]每天都贪恋着你的好\n[01:33]\n[01:50]小潘潘:\n[01:51]有时候我懒的像只猫\n[01:54]脾气不好时又张牙舞爪\n[01:58]你总是温柔的\n[02:01]能把我的心融化掉\n[02:03]我想要当你的小猫猫\n[02:07]\n[02:09]合:\n[02:09]我们一起学猫叫\n[02:11]一起喵喵喵喵喵\n[02:13]在你面前撒个娇\n[02:15]哎呦喵喵喵喵喵\n[02:17]我的心脏砰砰跳\n[02:19]迷恋上你的坏笑\n[02:22]你不说爱我我就喵喵喵\n[02:26]\n[02:26]我们一起学猫叫\n[02:28]一起喵喵喵喵喵\n[02:30]我要穿你的外套\n[02:32]闻你身上的味道\n[02:34]想要变成你的猫\n[02:36]赖在你怀里睡着\n[02:39]每天都贪恋着你的好\n[02:42]\n[02:42]我们一起学猫叫\n[02:44]一起喵喵喵喵喵\n[02:46]在你面前撒个娇\n[02:49]哎呦喵喵喵喵喵\n[02:51]我的心脏砰砰跳\n[02:53]迷恋上你的坏笑\n[02:55]你不说爱我我就喵喵喵\n[02:59]\n[02:59]我们一起学猫叫\n[03:01]一起喵喵喵喵喵\n[03:03]我要穿你的外套\n[03:05]闻你身上的味道\n[03:07]想要变成你的猫\n[03:09]赖在你怀里睡着\n[03:12]每天都贪恋着你的好\n"
}]

3.示例代码(可以直接运行)

  • Music 
package ssm.entity;

import lombok.Data;
import java.io.Serializable;

/**
 * @author chen
 * @create 2019-12-27 2:09
 * @url 1314258.cn
 */
@Data
public class Music implements Serializable {

    private static final long serialVersionUID = -38873741878079746L;
    /**
     *
     */
    private Integer id;

    /**
     *标题
     */
    private String name;

    /**
     *作者
     */
    private String artist;

    /**
     *歌曲路径
     */
    private String url;

    /**
     *封面图
     */
    private String cover;

    /**
     *歌词
     */
    private String lrc;

}

  • JsonDataToMysql
package ssm.util;

import com.alibaba.fastjson.JSONObject;
import org.apache.commons.io.FileUtils;
import org.springframework.util.ResourceUtils;
import ssm.entity.Music;

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.List;

/**
 * @author chen
 * @create 2019-12-27 2:09
 * @url 1314258.cn
 */
public class JsonDataToMysql {

    private static final String URI = "jdbc:mysql://127.0.0.1/myblog?"
            + "user=root&password=你的密码&useUnicode=true&characterEncoding=UTF-8";

    private static final String DRIVER = "com.mysql.jdbc.Driver";

    public static Connection connectDB() throws Exception {
        //1、加载数据库驱动
        Class.forName(DRIVER);
        //2、获取数据库连接
        Connection conn = DriverManager.getConnection(URI);

        return conn;
    }

    public static void addMusic(Music music) throws Exception {
        Connection conn = JsonDataToMysql.connectDB();
        String sql = "INSERT INTO music(name, artist, url, cover,lrc) "
                + " VALUES(?, ?, ?, ?, ?)";

        PreparedStatement pstmt = conn.prepareStatement(sql);
        pstmt.setString(1, music.getName());
        pstmt.setString(2, music.getArtist());
        pstmt.setString(3, music.getUrl());
        pstmt.setString(4, music.getCover());
        pstmt.setString(5, music.getLrc());

        pstmt.execute();
    }

    public static void main(String[] args) throws  Exception {
        //1.利用spring提供的工具类读取资源文件
        File jsonfile = ResourceUtils.getFile("classpath:cjb.json");
        //2.读取到的文件转换成为String类型
        String jsonsting  = FileUtils.readFileToString(jsonfile);
        //3.将字符串转成list集合
        List musics = JSONObject.parseArray(jsonsting, Music.class);
        //4.遍历插入到数据库
        for (Music m : musics) {
            addMusic(m);
        }
        System.out.println("成功插入"+musics.size()+"条");
    }
}
  • sql
    CREATE TABLE `music` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(100) DEFAULT NULL,
      `artist` varchar(100) DEFAULT NULL,
      `url` varchar(200) DEFAULT NULL,
      `cover` varchar(200) DEFAULT NULL,
      `lrc` text,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8;
    

     

4.效果图片

java遍历解析json数据并插入到数据库中(MySQL)_第1张图片

java遍历解析json数据并插入到数据库中(MySQL)_第2张图片

5.其他

感觉这个注释已经写得很仔细了,不懂的可以留言或者私信我。

你可能感兴趣的:(Java开发工具,Java工具类)