package com.dsideal.base.Tools; import com.dsideal.base.DataEase.Model.DataEaseModel; import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; import java.io.IOException; import java.util.Arrays; import java.util.List; public class DataSetFakeData { public static DataEaseModel dm = new DataEaseModel(); /** * 拷贝昆明市的数据 * * @param table_name * @param area_name */ public static void CopyData(String table_name, String area_name, String source_area_name) { String sql = "select * from `" + table_name + "` where `行政区划`='" + source_area_name + "'"; List list = Db.use(DataEaseModel.DB_NAME).find(sql); for (Record r : list) { r.set("行政区划", area_name); } Db.use(DataEaseModel.DB_NAME).batchSave(table_name, list, 100); } public static void main(String[] args) throws IOException { LocalMysqlConnectUtil.Init(); DataEaseModel dm = new DataEaseModel(); //这几个是要保留的地名 List keepArea = Arrays.asList("云南省", "昆明市", "楚雄州", "寻甸县"); //所有市州 Record rPrinvice = dm.getAreaByName("云南省"); String province_id = rPrinvice.getStr("id"); List listCity = dm.getAreaList(province_id); //拷贝城市数据 for (Record rCity : listCity) { //城市名称 String area_name = rCity.getStr("area_name"); //如果在保留名单中,则跳过 if (keepArea.contains(area_name)) { continue; } //遍历所有市州数据集 int identity_id = 2; List list = dm.getDataSetByIdentityId(identity_id, null); for (Record record : list) { String table_name = record.getStr("table_name"); System.out.println("正在处理数据集:" + table_name); //检查这个行政区划,在本数据表中是不是存在过,判断办法是 列名: `行政区划`= area_name,如果存在则不作处理,否则拷贝昆明市的数据 String sql = "select count(1) from `" + table_name + "` where `行政区划`='" + area_name + "'"; int cnt = Db.use(DataEaseModel.DB_NAME).queryInt(sql); if (cnt == 0) { CopyData(table_name, area_name, "昆明市"); } } } //获取所有县区 List listArea = dm.getProvinceArea("云南省"); for (Record rArea : listArea) { //城市名称 String area_name = rArea.getStr("area_name"); //如果在保留名单中,则跳过 if (keepArea.contains(area_name)) { continue; } //遍历所有县区数据集 int identity_id = 3; List list = dm.getDataSetByIdentityId(identity_id, null); for (Record record : list) { String table_name = record.getStr("table_name"); System.out.println("正在处理数据集:" + table_name); //检查这个行政区划,在本数据表中是不是存在过,判断办法是 列名: `行政区划`= area_name,如果存在则不作处理,否则拷贝昆明市的数据 String sql = "select count(1) from `" + table_name + "` where `行政区划`='" + area_name + "'"; int cnt = Db.use(DataEaseModel.DB_NAME).queryInt(sql); if (cnt == 0) { CopyData(table_name, area_name, "寻甸县"); } } } } }