读取省市区json文件,插入数据库表,表中保存父子节点对应关系

 java读取省市区json文件, 入库表t_city(code,val,fathercode),  保存父子节点

package manager;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;

public class CityNodeSqlGen {

	public static void main(String[] args) {
		String f = "I:/myData/qq_data/3442175060/FileRecv/cities1.js";
		// String f = "I:/myData/qq_data/3442175060/FileRecv/bj.js";
		File file = new File(f);
		JSONArray jsonArray = JSONUtil.readJSONArray(file, CharsetUtil.charset("UTF-8"));
		// System.out.println(json.toString());
		List<CityNode> list = JSONUtil.toList(jsonArray, CityNode.class);
		// System.out.println(JSONUtil.toJsonStr(cn));
		pro(list);
	}

	private static void pro(List<CityNode> list) {
		String sql = null;
		List<String> result = new ArrayList<>();
		for (CityNode t_city : list) {
			String code = t_city.getCode();
			String val = t_city.getValue();
			sql = "insert into t_city(code,val,fathercode) values('" + code + "','" + val + "','" + 0 + "');";//省
//			System.out.println(sql);
			result.add(sql);
			List<CityNode> children = t_city.getChildren();
			for (CityNode city : children) {
				String code1 = city.getCode();
				String val1 = city.getValue();
				sql = "insert into t_city(code,val,fathercode) values('" + code1 + "','" + val1 + "','" + code
						+ "');";//市
//				System.out.println(sql);
				result.add(sql);

				List<CityNode> children2 = city.getChildren();
				if (CollUtil.isNotEmpty(children2)) {
					for (CityNode area : children2) {
						String code2 = area.getCode();
						String val2 = area.getValue();
						sql = "insert into t_city(code,val,fathercode) values('" + code2 + "','" + val2 + "','"
								+ code1 + "');";//区
//						System.out.println(sql);
						result.add(sql);
					}
				}

			}
		}
		File file = new File("I:\\项目代码和文档\\加油站项目\\t_city2.sql");
		FileUtil.writeLines(result, file, "utf-8");
	}

}
package manager;

import java.util.List;

import lombok.Data;

@Data
public class CityNode {
	private String code;
	private String value;
	private String label;
	private List<CityNode> children;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值