Java小程序:将json文件中树信息转换成insert sql脚本

来源:互联网 发布:python 数据缺失 编辑:程序博客网 时间:2024/05/26 19:16

最近做一个需求,需要将json文件中的树结构信息读取出来保存到数据库表中,所以写了个小程序来完成;该程序需要依赖fastjson包

1、json文件内容(仅举例)

这里写图片描述

2、java代码

“`
public class TreeListConvertDemo {

public static void main(String[] args) {    buildInsertSqlFromJSON("D:/tmp/Tree.json");}   public static void buildInsertSqlFromJSON(String jsonFileName) {                 File file = new File(jsonFileName);    Scanner scanner = null;    StringBuilder buffer = new StringBuilder();    try {        scanner = new Scanner(file, "utf-8");        while (scanner.hasNextLine()) {            buffer.append(scanner.nextLine());        }        } catch (FileNotFoundException e) {      } finally {         scanner.close();         }               TreeBean bean = JSON.parseObject(buffer.toString(), TreeBean.class);            List<TreeRecordDO> list = new ArrayList<TreeRecordDO>();    treeBean2list(bean, list, null);    try {        String lineSeparator = System.getProperty("line.separator","\n");        String outFileName = "D:/tmp/output.sql";        File outputFile = new File(outFileName);        if (outputFile.exists()){            outputFile.delete();        }        FileWriter writer = new FileWriter(outFileName, true);        for (TreeRecordDO d:list) {            writer.write(d.buildInsertSql());            writer.write(lineSeparator);        }        writer.close();    } catch (Exception e){        e.printStackTrace();    } }   public static void treeBean2list(TreeBean root,List<TreeRecordDO> list,String parentId){    if (root == null) {        return ;    }    TreeRecordDO d = new TreeRecordDO(root.getId(),parentId,root.getName());    list.add(d);    if (root.getChildren()==null){        return;    }    for (TreeBean sub:root.getChildren()){        treeBean2list(sub, list, d.getId());    }       }

}

public class TreeBean implements Serializable{
private static final long serialVersionUID = -8943661675341420107L;
private String id;
private String name;
private List children;
//getter setter
}

public class TreeRecordDO {
private String id;
private String parentId;
private String name;

public TreeRecordDO(){} public TreeRecordDO(String id,String parentId,String name) {    this.id=id;    this.parentId=parentId;    this.name=name;}public String buildInsertSql(){    StringBuilder insertSql = new StringBuilder();    insertSql.append("insert into mln_live_classify(id,parent_id,name,org_id,is_del,"            + "created_by,created_date,updated_by,updated_date)values(")    .append("'"+ this.id+ "'").append(",");    if (this.parentId == null){        insertSql.append("null");    } else {        insertSql.append("'" + this.parentId+ "'");    }    insertSql.append(",")    .append("'"+ this.name + "'").append(",")    .append("orgId,0,'admin',sysdate,'admin',sysdate);");    return insertSql.toString();}   //getter setter     

}“`

3、生成的sql

这里写图片描述

0 0
原创粉丝点击