package com.dsideal.base.Tools; import com.dsideal.base.DataEase.Model.DataEaseModel; import com.dsideal.base.Util.SSHConnector; import com.jfinal.plugin.activerecord.ActiveRecordPlugin; import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.activerecord.dialect.MysqlDialect; import com.jfinal.plugin.hikaricp.HikariCpPlugin; import java.io.File; import java.io.IOException; import java.util.List; import com.jcraft.jsch.Session; public class AddXzqh { public static void main(String[] args) throws IOException { //远程主机的SSH登录信息 String sshHost = "117.78.60.214"; int sshPort = 52025; String sshUser = "root"; String sshPassword = "DsIdeal@123"; String mysqlHost = "127.0.0.1"; // MySQL server host int mysqlPort = 3306; // MySQL server port Session session = SSHConnector.createSSHSession(sshHost, sshPort, sshUser, sshPassword); try { int localPort = 33306; // Local port to forward to MySQL server session.setPortForwardingL(localPort, mysqlHost, mysqlPort); String jdbcUrl = "jdbc:mysql://localhost:" + localPort + "/ds_db"; String user = "root"; String password = "Password123@mysql"; String driverClassName = "com.mysql.cj.jdbc.Driver"; HikariCpPlugin masterPlugin = new HikariCpPlugin(jdbcUrl, user, password, driverClassName); masterPlugin.start(); HikariCpPlugin dataEasePlugin = new HikariCpPlugin(jdbcUrl.replace("ds_db", DataEaseModel.DB_NAME), user, password, driverClassName); dataEasePlugin.start(); // 配置ActiveRecord插件 ActiveRecordPlugin arp = new ActiveRecordPlugin(masterPlugin); arp.setDialect(new MysqlDialect()); ActiveRecordPlugin arpDataEase = new ActiveRecordPlugin(DataEaseModel.DB_NAME, dataEasePlugin); arpDataEase.setDialect(new MysqlDialect()); //遍历sql目录下所有的sql文件 File sqlDir; String basePath = AddXzqh.class.getResource("/").getPath(); sqlDir = new File(basePath + "/Sql"); File[] sqlFiles = sqlDir.listFiles(); for (File sqlFile : sqlFiles != null ? sqlFiles : new File[0]) { //只加载.sql文件 if (sqlFile.getName().indexOf(".sql") > 0) { arp.addSqlTemplate("/Sql/" + sqlFile.getName()); arpDataEase.addSqlTemplate("/Sql/" + sqlFile.getName()); } } arp.start(); arpDataEase.start(); DataEaseModel dm = new DataEaseModel(); //遍历所有以excel_开头的表,找出这些表中是不是存在行政区划,上级行政区划的列名 for (int identity_id : new int[]{1, 2, 3}) { List list = dm.getDataSetByIdentityId(identity_id); //开始检查 for (Record record : list) { String tableName = record.getStr("table_name"); String dataSetName = record.getStr("dataset_name"); //这张表中存在行政区划的列名,就跳过,不处理 if (dm.hasNoColumnName(tableName, "行政区划")) { //System.out.println((identity_id == 2 ? "【市州】" : "【县区】") + dataSetName + "表:" + tableName + "没有行政区划的列名,请手动添加"); dm.addColumn(tableName, "行政区划"); } //这张表中存在上级行政区划的列名,就跳过,不处理 if (dm.hasNoColumnName(tableName, "上级行政区划")) { //System.out.println((identity_id == 2 ? "【市州】" : "【县区】") + dataSetName + "表:" + tableName + "没有行政区划的列名,请手动添加"); dm.addColumn(tableName, "上级行政区划"); } } } System.out.println("恭喜,所有数据处理完毕。"); session.disconnect(); } catch (Exception e) { e.printStackTrace(); } } }