diff --git a/dsBase/src/main/java/com/dsideal/base/Test/TestDataSet.java b/dsBase/src/main/java/com/dsideal/base/Test/TestDataSet.java new file mode 100644 index 00000000..25dee856 --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/base/Test/TestDataSet.java @@ -0,0 +1,59 @@ +package com.dsideal.base.Test; + +import com.dsideal.base.Plugin.YamlProp; +import com.jfinal.kit.Kv; +import com.jfinal.kit.Prop; +import com.jfinal.plugin.activerecord.ActiveRecordPlugin; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.SqlPara; +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 TestDataSet { + public static void main(String[] args) { + //加载配置文件 + String configFile = "application_dataease.yaml"; + Prop PropKit = new YamlProp(configFile); + HikariCpPlugin arpPlugin = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl"), PropKit.get("mysql.user"), + PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName")); + arpPlugin.start(); + + // 配置ActiveRecord插件 + ActiveRecordPlugin arp = new ActiveRecordPlugin("master", arpPlugin); + arp.setDialect(new MysqlDialect()); + + //遍历sql目录下所有的sql文件 + File sqlDir; + String basePath = TestDataSet.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()); + } + } + arp.start(); + + //1、获取树根 + SqlPara sqlPara = Db.getSqlPara("DataEase.getTreeRoot"); + Record rRoot = Db.findFirst(sqlPara); + long rootId = rRoot.getLong("id"); + + //2、查询有哪些数据集 + Kv kv = Kv.by("id", rootId); + kv.set("dataset",true); + sqlPara = Db.getSqlPara("DataEase.getAllDataSet", kv); + List list= Db.find(sqlPara); + + for (Record record : list) { + long id= record.getLong("id"); + String name= record.getStr("name"); + System.out.println(name); + } + } +} diff --git a/dsBase/src/main/resources/Sql/dataease.sql b/dsBase/src/main/resources/Sql/dataease.sql new file mode 100644 index 00000000..62b2fa69 --- /dev/null +++ b/dsBase/src/main/resources/Sql/dataease.sql @@ -0,0 +1,22 @@ +#namespace("DataEase") + -- 获取树根 + #sql("getTreeRoot") + select * from core_dataset_group where name like '云南省教科院项目'; + #end + -- 获取所有的数据集 + #sql("getAllDataSet") + WITH RECURSIVE tree_cte AS ( + SELECT * + FROM core_dataset_group + WHERE id = #para(id) -- 根节点的id + UNION ALL + SELECT c.* + FROM core_dataset_group c + INNER JOIN tree_cte t ON c.pid = t.id + ) + SELECT id ,name ,pid,node_type FROM tree_cte + #if(dataset) + where node_type='dataset' + #end + #end +#end \ No newline at end of file diff --git a/dsBase/src/main/resources/application_dataease.yaml b/dsBase/src/main/resources/application_dataease.yaml new file mode 100644 index 00000000..37ed4cfa --- /dev/null +++ b/dsBase/src/main/resources/application_dataease.yaml @@ -0,0 +1,8 @@ +mysql: + # 数据库信息 + driverClassName: com.mysql.cj.jdbc.Driver + user: root + password: Password123@mysql + jdbcUrl : jdbc:mysql://10.10.14.203:3306/dataease?rewriteBatchedStatements=true&useUnicode=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai + +