|
|
|
@ -8,6 +8,8 @@ import com.alibaba.fastjson2.JSONObject;
|
|
|
|
|
|
|
|
|
|
import java.io.FileNotFoundException;
|
|
|
|
|
import java.io.FileReader;
|
|
|
|
|
|
|
|
|
|
import com.dsideal.base.Tools.Excel.Util.ExcelUtil;
|
|
|
|
|
import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil;
|
|
|
|
|
import com.jfinal.plugin.activerecord.Db;
|
|
|
|
|
import com.jfinal.plugin.activerecord.Record;
|
|
|
|
@ -17,30 +19,16 @@ import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
public class School2019Map {
|
|
|
|
|
// 定义列配置类
|
|
|
|
|
private static class ColumnConfig {
|
|
|
|
|
int index; // Excel列索引
|
|
|
|
|
String name; // 列名
|
|
|
|
|
String type; // 数据类型
|
|
|
|
|
|
|
|
|
|
ColumnConfig(int index, String name, String type) {
|
|
|
|
|
this.index = index;
|
|
|
|
|
this.name = name;
|
|
|
|
|
this.type = type;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public class SchoolWithMap {
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) throws FileNotFoundException {
|
|
|
|
|
|
|
|
|
|
// 一、关闭日志输出
|
|
|
|
|
|
|
|
|
|
// 禁用 logback 的状态输出
|
|
|
|
|
System.setProperty("logback.statusListenerClass", "ch.qos.logback.core.status.NopStatusListener");
|
|
|
|
|
|
|
|
|
|
// 设置所有相关日志级别
|
|
|
|
|
Logger root = (Logger) LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
|
|
|
|
|
root.setLevel(Level.ERROR);
|
|
|
|
|
|
|
|
|
|
// 设置特定包的日志级别
|
|
|
|
|
String[] packages = {
|
|
|
|
|
"org.ehcache",
|
|
|
|
@ -50,17 +38,17 @@ public class School2019Map {
|
|
|
|
|
"ch.qos.logback",
|
|
|
|
|
"org.slf4j"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
for (String pkg : packages) {
|
|
|
|
|
Logger logger = (Logger) LoggerFactory.getLogger(pkg);
|
|
|
|
|
logger.setLevel(Level.ERROR);
|
|
|
|
|
logger.setAdditive(false);
|
|
|
|
|
}
|
|
|
|
|
//初始化数据库连接
|
|
|
|
|
|
|
|
|
|
// 二、初始化数据库连接
|
|
|
|
|
LocalMysqlConnectUtil.Init();
|
|
|
|
|
|
|
|
|
|
// 读取配置文件
|
|
|
|
|
String configPath = "D:\\dsWork\\YunNanDsBase\\src\\main\\java\\com\\dsideal\\base\\Tools\\Excel\\SchoolCount.json";
|
|
|
|
|
String configPath = "D:/dsWork/YunNanDsBase/src/main/java/com/dsideal/base/Tools/Excel/Data/SchoolCount.json";
|
|
|
|
|
JSONObject config = JSON.parseObject(new FileReader(configPath));
|
|
|
|
|
|
|
|
|
|
String filePath = "D:/dsWork/2025年收集的人口与教育数据库(20250328)/2015-2020年的数据/基础教育/2019.xlsx";
|
|
|
|
@ -114,9 +102,9 @@ public class School2019Map {
|
|
|
|
|
for (Map<String, Object> data : dataList) {
|
|
|
|
|
try {
|
|
|
|
|
// 根据列配置获取数据
|
|
|
|
|
String city = getColumnValue(data, columnConfigs.get("city"));
|
|
|
|
|
String district = getColumnValue(data, columnConfigs.get("district"));
|
|
|
|
|
int count = getColumnValueAsInt(data, columnConfigs.get("schoolCount"));
|
|
|
|
|
String city = ExcelUtil.getColumnValue(data, columnConfigs.get("city"));
|
|
|
|
|
String district = ExcelUtil.getColumnValue(data, columnConfigs.get("district"));
|
|
|
|
|
int count = ExcelUtil.getColumnValueAsInt(data, columnConfigs.get("schoolCount"));
|
|
|
|
|
|
|
|
|
|
if (count > 0) {
|
|
|
|
|
// 如果市不存在,创建新的 Map
|
|
|
|
@ -128,38 +116,12 @@ public class School2019Map {
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
System.err.println("处理数据行时出错: " + data);
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
continue; // 继续处理下一行
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return cityDistrictMap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取列值
|
|
|
|
|
*/
|
|
|
|
|
private static String getColumnValue(Map<String, Object> data, ColumnConfig config) {
|
|
|
|
|
Object value = data.get(config.index);
|
|
|
|
|
return value != null ? value.toString() : "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取列值并转换为整数
|
|
|
|
|
*/
|
|
|
|
|
private static int getColumnValueAsInt(Map<String, Object> data, ColumnConfig config) {
|
|
|
|
|
Object value = data.get(config.index);
|
|
|
|
|
if (value == null) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
if (value instanceof Number) {
|
|
|
|
|
return ((Number) value).intValue();
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
return Integer.parseInt(value.toString());
|
|
|
|
|
} catch (NumberFormatException e) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 将统计结果保存到数据库
|