本示例为“全国行政区划”数据解析,示例资源👉 data.zip
💡 注意:由于目前所在公司团队使用的数据较为陈旧,若阁下有提供最新行政区划数据的需求,请自行寻找相关资源,谢谢。
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.io.FileUtils;
import org.springframework.core.io.ClassPathResource;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
/**
* Json文本文件转Sql语句工具
*
* @author Stone
*/
public class JsonToSqlUtil {
public static void main(String[] args) throws Exception {
long startTime = System.currentTimeMillis();
System.out.println("----------Json文本文件转Sql开始----------");
jsonToSql();
System.out.println("----------Json文本文件转Sql结束,耗时:" + (System.currentTimeMillis() - startTime) + "毫秒----------");
}
private static void jsonToSql() throws Exception {
ClassPathResource resource = new ClassPathResource("data.json");
File file = resource.getFile();
String data = FileUtils.readFileToString(file);
//省
JSONArray provinceArray = JSONArray.parseArray(data);
//根据文本文件数据格式,遍历解析数据
for (int i = 0; i < provinceArray.size(); i++) {
JSONObject province = (JSONObject) provinceArray.get(i);
System.out.println(province);
String provinceIdId = IdGen.uuid();
String provinceCode = province.getString("code");
String provinceName = province.getString("name");
String provinceSql = "INSERT INTO SYS_ADMINISTRATIVE_DIVISION (ID, CODE, NAME, PARENT_CODE, PARENT_NAME, DESCRIBE, IS_ENABLE)VALUES('" + provinceIdId + "','" + provinceCode + "','" + provinceName + "','','','','1'); \r\n";
System.out.println(provinceSql);
write(provinceSql);
//市
JSONArray cityArray = province.getJSONArray("children");
if (cityArray != null && cityArray.size() > 0) {
for (int j = 0; j < cityArray.size(); j++) {
JSONObject city = (JSONObject) cityArray.get(j);
System.out.println(city);
String cityId = IdGen.uuid();
String cityCode = city.getString("code");
String cityName = city.getString("name");
String citySql = "INSERT INTO SYS_ADMINISTRATIVE_DIVISION (ID, CODE, NAME, PARENT_CODE, PARENT_NAME, DESCRIBE, IS_ENABLE)VALUES('" + cityId + "','" + cityCode + "','" + cityName + "','" + provinceCode + "','" + provinceName + "','','1'); \r\n";
System.out.println(citySql);
write(citySql);
//区县
JSONArray districtArray = city.getJSONArray("children");
if (districtArray != null && districtArray.size() > 0) {
for (int k = 0; k < districtArray.size(); k++) {
JSONObject district = (JSONObject) districtArray.get(k);
System.out.println(district);
String districtId = IdGen.uuid();
String districtCode = district.getString("code");
String districtName = district.getString("name");
String districtSql = "INSERT INTO SYS_ADMINISTRATIVE_DIVISION (ID, CODE, NAME, PARENT_CODE, PARENT_NAME, DESCRIBE, IS_ENABLE)VALUES('" + districtId + "','" + districtCode + "','" + districtName + "','" + cityCode + "','" + cityName + "','','1'); \r\n";
System.out.println(districtSql);
write(districtSql);
}
}
}
}
}
}
/**
* 写入sql文件
*
* @param sql
* @throws IOException
*/
private static void write(String sql) throws IOException {
File file;
file = new File("D:/data.sql");
if (!file.exists()) {
file.createNewFile();
}
FileWriter fileWriter = new FileWriter(file, true);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(sql);
bufferedWriter.close();
}
}
英雄留步!走过路过不要错过,既然来了就恭请加入 平等 • 自由 • 奔放 的 黑客派社区,一起学习,相互分享,共同进步吧 😄
注册邀请链接:https://hacpai.com/register?r=Stone
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于