首页 > 其他分享 >DataEase 数据源插件开发——如何替换 STGroupFile 模板文件

DataEase 数据源插件开发——如何替换 STGroupFile 模板文件

时间:2023-01-11 16:06:46浏览次数:65  
标签:插件 STGroupFile 数据源 dataease stg sql 模板

在 DataEase 的数据源中,使用了 STGroupFile 模板文件,默认加载的模板文件为 dataease-extension-sdk 项目中的 pluginSqltemplate.stg 文件,如下图所示

DataEase 数据源插件开发——如何替换 STGroupFile 模板文件_数据源

此文件中声明了 SQL 的模板,在生成动态 SQL 时,只需要将参数传入即可,参数传入后,ST 对象执行 render() 方法即可获取模板中变量别参数替换后的 SQL 语句。

STGroup stg = new STGroupFile("pluginSqltemplate.stg");
ST st_sql = stg.getInstanceOf("querySql");
if (CollectionUtils.isNotEmpty(gFields))
st_sql.add("groups", gFields);
if (CollectionUtils.isNotEmpty(fields))
st_sql.add("aggregators", fields);
if (CollectionUtils.isNotEmpty(wheres))
st_sql.add("filters", wheres);
if (ObjectUtils.isNotEmpty(tableObj))
st_sql.add("table", tableObj);
String sql = st_sql.render();

当我们参考 DataEase 源码,开发新的数据源插件时,可能当前的 stg 模板并不适用于我们要开发的数据源的使用场景,当我们想要替换此文件为自己的文件时,我们可以新建一个自己的数据源插件的模板文件,然后将文件放到 XXXDriver 目录下,并将声明STGroupFile的文件名设置为文件固定路径(“/opt/dataease/plugins/”+ 文件名)。

STGroup stg = new STGroupFile("/opt/dataease/plugins/xxxPluginSqltemplate.stg");

这个路径是与 dataaese 项目相关的,当插件导入到 dataease 中时,dataease 会自动加载 XXXDriver 目录下的文件到 /opt/dataease/plugins/ 目录下,这个目录是支持配置的,所以我们可以在代码中使用 @Value 注解将此目录的路径与 dataaese 配置文件的配置项绑定,当 dataaese 加载插件时会自动加载配置内容。

DataEase 数据源插件开发——如何替换 STGroupFile 模板文件_数据源_02

DataEase 数据源插件开发——如何替换 STGroupFile 模板文件_模板替换_03

详细的数据源插件开发过程可参考官方文档教程:

​https://dataease.io/docs/dev_manual/dev_datasource_plugin/​


标签:插件,STGroupFile,数据源,dataease,stg,sql,模板
From: https://blog.51cto.com/u_15922912/6002316

相关文章

  • 分享| 一文说透“插件技术”
    近年来技术革新频率越来越高,最近工作中经常有小伙伴问到插件技术的相关内容,今天就来跟大家系统的说清楚什么是插件技术以及它的好处。欢迎评论区交流哦!什么是插件技术?插件技......
  • Docker 打包MySQL (带数据源打包) 并加载打包后镜像运行
    前言mysql镜像的数据默认都在/var/lib/mysql目录下,我们修改默认的数据库的数据位置就行,不要放在/var/lib/mysql下面。操作1.创建mysql源数据备份目录mkdir/mysqldata......
  • Heightchars 图标插件
    官网地址  https://www.runoob.com/highcharts/highcharts-setting-detail.html带数字的折线图:1html>2<head>3<metacharset="UTF-8"/>4<title>Highchar......
  • Vue中组件和插件的区别
    一、组件是什么1:组件的定义:组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,在Vue中每一个.vue文件都可以视为一个组件2:组件的优势......
  • linux离线安装插件包
    1、下载插件包(联网的linux环境下)#检查是否安装了vim(vim-minimal是vi)[root@localhostopt]#rpm-qa|grepvimvim-minimal-8.0.1763-16.el8.x86_64#下载vim相关插......
  • 42、mybatisplus配置分页插件
    1、旧版分页插件配置方法(MybatisPlus3.4.0版本之前)@EnableTransactionManagement//开启事务@Configuration@MapperScan(basePackages={"com.zimug.**.mapper"})p......
  • Docker 利用buildx插件构建多平台镜像
    ##安装DockerBuildx[安装DockerBuildx](https://docs.docker.com/build/buildx/install/)##运行Docker镜像分发的跨平台模拟器```shdockerrun--privile......
  • picgo插件开发
    ##借鉴文档[Typora配置picgo-core自动上传图片,及picgo-core上传组件开发](https://blog.csdn.net/weixin_45673647/article/details/121465975)[PicGo插件开发文档](h......
  • 代码编辑器插件 codemirror 和 monaco-editor 的使用
    codemirrorcodemirror官方文档vue-codemirror官方文档vue-codemirror官方examples因为是本项目是vue2所以先记录vue2中的使用安装4.0.6配合vue2npminsta......
  • 【转】pageOffice插件 springboot实现服务器上Word文档在线打开编辑保存
    pageOffice插件springboot实现服务器上Word文档在线打开编辑保存需求:在oa系统上,想实现在线,服务器上doc,docx文档,在web打开,编辑。编辑后,可以再同步保存到服务器端。开发......