工作中遇到了这个问题,做个笔记,也为遇见我这种情况的做个参考。
工作的时候,现有的只有一个全国省市县的Json数据。要初始化到数据库。
json数据:
文件格式.json格式,代码可以直接使用。
如果想查看请使用EditPlus等工具即可查看。
全国省市县json数据下载地址:
http://download.csdn.net/detail/u013465293/9833667
封装了3个实体类,jsonList、AreaList、Chindren,用来把json转换成bean。
jsonList类:
package com.simple.web.model.model;
import java.util.List;
public class JsonList {
private List<AreaList> jsonList;
public List<AreaList> getJsonList() {
return jsonList;
}
public void setJsonList(List<AreaList> jsonList) {
this.jsonList = jsonList;
}
}
AreaList类:
package com.simple.web.model.model;
import java.util.List;
public class AreaList {
private String code;
private String name;
private List<Children> children;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Children> getChildren() {
return children;
}
public void setChildren(List<Children> children) {
this.children = children;
}
}
Chindren类:
package com.simple.web.model.model;
import java.util.List;
public class Children {
private String code;
private String name;
private List<Children> children;
public List<Children> getChildren() {
return children;
}
public void setChildren(List<Children> children) {
this.children = children;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
区域表area初始化方法:
public void areaTableInit(){
Area area=null;
//json文件
String fileName = "area.json";
JsonList jsonList = null;
try {
//拼接文件路径
String fieldFilePath = ApplicationUtils
.getWebFileAbsoluteClassPath("excel-field-map/" + fileName);
File file = new File(fieldFilePath);
//使用ObjectMapper降json转换成bean
ObjectMapper objectMapper = new ObjectMapper();
jsonList = objectMapper.readValue(file, JsonList.class);
List<AreaList> areaList = jsonList.getJsonList();
long startTime = System.currentTimeMillis();
//获取省
for (AreaList arealist : areaList) {
List<Children> children = arealist.getChildren();
System.out.println(arealist.getName());
area=new Area();
area.setAreaGrade(1);//1.省 2.市 3.区
area.setAreaCode(arealist.getCode());//地区编码
area.setAreaName( arealist.getName());//地区名字
area.setCreateDate(new Date());//创建日期
area.setParentAreaId(0);//上级id
areaService.insert(area);
Integer provinceId = area.getAreaId();
//获取市
if (null != children) {
for (Children a : children) {
System.out.println("----" + a.getName());
area=new Area();
area.setAreaGrade(2);//1.省 2.市 3.区
area.setAreaCode(a.getCode());
area.setAreaName(a.getName());
area.setCreateDate(new Date());
area.setParentAreaId(provinceId);//上级id为省id
areaService.insert(area);
int cityId = area.getAreaId();
List<Children> chil = a.getChildren();
//获取县
if (null != chil) {
for (Children c : chil) {
System.out.println("----------" + c.getName());
area=new Area();
area.setAreaGrade(3);//1.省 2.市 3.区
area.setAreaCode(c.getCode());
area.setAreaName(c.getName());
area.setCreateDate(new Date());
area.setParentAreaId(cityId);//上级id为市id
areaService.insert(area);
int countyId = area.getAreaId();
}
}
}
}
}
long endTime = System.currentTimeMillis();
long time=endTime-startTime;
System.out.println("初始化所用时间:"+time);
System.out.println("-----------area表初始化成功-------------");
} catch (Exception e) {
e.printStackTrace();
}
}
运行结果:
初始化所用时间:202165
-----------area表初始化成功-------------
本章只是本人笔记,其实直接运行sql文件就可以。
sql文件下载地址:百度云:http://pan.baidu.com/s/1geRVdYV