package com.dsideal.base.Tools; import com.dsideal.base.DataEase.Model.DataEaseModel; import com.dsideal.base.Plugin.YamlProp; import com.jfinal.kit.Prop; import com.jfinal.plugin.activerecord.ActiveRecordPlugin; import com.jfinal.plugin.activerecord.dialect.MysqlDialect; import com.jfinal.plugin.hikaricp.HikariCpPlugin; import com.jfinal.plugin.activerecord.Record; import java.io.File; import java.util.List; public class InitDataEaseDataSet { public static void main(String[] args) { //加载配置文件 String configFile = "application_dev.yaml"; Prop PropKit = new YamlProp(configFile); HikariCpPlugin masterPlugin = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl"), PropKit.get("mysql.user"), PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName")); masterPlugin.start(); HikariCpPlugin dataEasePlugin = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl").replace("ds_db", DataEaseModel.DB_NAME), PropKit.get("mysql.user"), PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName")); dataEasePlugin.start(); // 配置ActiveRecord插件 ActiveRecordPlugin arp = new ActiveRecordPlugin("master", masterPlugin); arp.setDialect(new MysqlDialect()); ActiveRecordPlugin arpDataEase = new ActiveRecordPlugin(DataEaseModel.DB_NAME, dataEasePlugin); arpDataEase.setDialect(new MysqlDialect()); //遍历sql目录下所有的sql文件 File sqlDir; String basePath = InitDataEaseDataSet.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(); //1、添加到数据集表中 dm.collectDataSet(); //2、加上主键 dm.addPrimaryKey(); //3、将所有非空列去掉不允许为空的限制 dm.updateNotNullColumns(); //4、遍历所有数据集的表 int total = 0; for (int i = 1; i <= 3; i++) {//1:省管理员,2:市州管理员,3:县区管理员 switch (i) { case 1: System.out.println("正在处理省管理员需要看到的数据集~"); break; case 2: System.out.println("正在处理市州管理员需要看到的数据集~"); break; case 3: System.out.println("正在处理县区管理员需要看到的数据集~"); break; } List list = dm.getDataSetByIdentityId(i); System.out.println("数据集个数=" + list.size()); total += list.size(); for (Record record : list) { int id = record.getInt("id"); String tableName = record.getStr("table_name"); System.out.println("正在处理数据集:" + tableName); } } System.out.println("恭喜,所有数据处理完毕,共生成数据集数量=" + total + "个。"); } }