java jsonsql_java遍历解析json数据并插入到数据库中(MySQL)
1.思路
讀取json資源文件
File轉化為JSON串
JSON串轉對象集合
遍歷插入到數(shù)據(jù)庫
2.工具(jar包)
使用spring-core,fastjson,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]思前想后愈發(fā)緊張\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]思前想后愈發(fā)緊張\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]我們一起學貓叫\(zhòng)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]我們一起學貓叫\(zhòng)n[01:02]一起喵喵喵喵喵\n[01:04]在你面前撒個嬌\n[01:06]哎呦喵喵喵喵喵\n[01:08]我的心臟砰砰跳\n[01:10]迷戀上你的壞笑\n[01:13]你不說愛我我就喵喵喵\n[01:16]\n[01:17]我們一起學貓叫\(zhòng)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]我們一起學貓叫\(zhòng)n[02:11]一起喵喵喵喵喵\n[02:13]在你面前撒個嬌\n[02:15]哎呦喵喵喵喵喵\n[02:17]我的心臟砰砰跳\n[02:19]迷戀上你的壞笑\n[02:22]你不說愛我我就喵喵喵\n[02:26]\n[02:26]我們一起學貓叫\(zhòng)n[02:28]一起喵喵喵喵喵\n[02:30]我要穿你的外套\n[02:32]聞你身上的味道\n[02:34]想要變成你的貓\n[02:36]賴在你懷里睡著\n[02:39]每天都貪戀著你的好\n[02:42]\n[02:42]我們一起學貓叫\(zhòng)n[02:44]一起喵喵喵喵喵\n[02:46]在你面前撒個嬌\n[02:49]哎呦喵喵喵喵喵\n[02:51]我的心臟砰砰跳\n[02:53]迷戀上你的壞笑\n[02:55]你不說愛我我就喵喵喵\n[02:59]\n[02:59]我們一起學貓叫\(zhòng)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、加載數(shù)據(jù)庫驅動
Class.forName(DRIVER);
//2、獲取數(shù)據(jù)庫連接
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集合
Listmusics = JSONObject.parseArray(jsonsting, Music.class);
//4.遍歷插入到數(shù)據(jù)庫
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.效果圖片
5.其他
感覺這個注釋已經(jīng)寫得很仔細了,不懂的可以留言或者私信我。
總結
以上是生活随笔為你收集整理的java jsonsql_java遍历解析json数据并插入到数据库中(MySQL)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 医疗,医药人工智能需要知道的几件事情
- 下一篇: .NET5.0 初始