From bc123b8f277038f7cebc9841633a8649a847c552 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moshow=E9=83=91=E9=94=B4?= Date: Sun, 1 Jan 2023 16:26:10 +0800 Subject: [PATCH] =?UTF-8?q?|=202023.01.01=20|=20=E6=96=B0=E5=A2=9EGCP=20Bi?= =?UTF-8?q?gQuery/Dataflow=20JJS/QlikSense=20BI=E6=A8=A1=E6=9D=BF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 115 +++++++++--------- .../src/main/resources/application-bejson.yml | 2 +- .../src/main/resources/application-dev.yml | 2 +- .../main/resources/application-devtools.yml | 2 +- .../src/main/resources/template.json | 26 +++- .../templates/code-generator/bi/qliksense.ftl | 94 ++++++++++++++ .../code-generator/cloud/bigquery.ftl | 17 +++ .../code-generator/cloud/dataflowjjs.ftl | 38 ++++++ 8 files changed, 235 insertions(+), 61 deletions(-) create mode 100644 generator-web/src/main/resources/templates/code-generator/bi/qliksense.ftl create mode 100644 generator-web/src/main/resources/templates/code-generator/cloud/bigquery.ftl create mode 100644 generator-web/src/main/resources/templates/code-generator/cloud/dataflowjjs.ftl diff --git a/README.md b/README.md index ca825a11..63bc9122 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ > 愿大家可以维持生活和工作平衡,保持健康和安全,祝大家工作顺利! # Tips or Features -- 支持DDL SQL/INSERT SQL/SIMPLE JSON三种生成模式 +- 支持`DDL SQL`/`INSERT SQL`/`SIMPLE JSON`三种生成模式 - `自动记忆`最近生成的内容,最多保留9个 - 提供众多`通用模板`,易于使用,复制粘贴加简单修改即可完成CRUD操作 - 支持`特殊字符`模板(`#`请用`井`代替;`$`请用`¥`代替) @@ -58,61 +58,64 @@ Thanks for `JetBrains` providing us the `Licenses for Open Source Development` # Update Logs -| 更新日期 | 更新内容 | -|:------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 2022.02.10 | 更新springboot、fastjson、lombok依赖(感谢@Abbykawai的建议)。 | -| 2022.02.09 | 新增JPA-STARP模板(感谢@starplatinum3的贡献)。 | -| 2022.01.11 | 优化mybatis的mapper文件生成(感谢@chendong的贡献)。 | -| 2021.10.31 | 优化当有索引和额外的换行时的解析逻辑(感谢@feitian124的贡献)。
修复部分模板参数不对应(感谢@Thixiaoxiao的贡献)。
新增cookie记录所需配置字段逻辑,避免重复配置(感谢@Thixiaoxiao的贡献)。 | -| 2021.08.07 | 新增当前模板保持功能,重新生成代码后依然会保持在当前选择模板。
新增renren-fast模板。 | -| 2021.08.05 | 解决 update 方法语法错误;调整部分语句避免sonarLint告警(感谢@Henry586的PR);
add swagger-yml.ftl(感谢@fuuqiu的PR);
支持common-mapper&修复entity和plusentity的swagger引包错误(感谢@chentianming11的PR) | -| 2021.03.24 | 修复Mybatis.XML中缺失test=关键字问题。(感谢@BWHN/YUEHUI的反馈)。 | -| 2021.01.18 | OEM信息优化,支持多配置文件模式,支持在application*.yml自定义信息,以及切换local/cdn模式。 | -| 2021.01.17 | 生成后自动trim掉前后空格输出。
完善ReadMe文档。
优化云CDN引入部分。
优化returnUtil部分。
表明前缀选项(感谢@wwlg的建议)。
是否带字段注释设置(感谢@fengpojian的建议)。
优化Mybatis的''!=判断(感谢@zhongsb的建议)。
Mybatis-Plus增加Service层(感谢@yf466532479的建议)。 | -| 2021.01.16 | 全新3.0版本:
一、前端半vue半js化,更多动态加载项。
二、支持更多生成设置,优化生成场景。
三、js导入支持本地/CDN模式,支持断网环境轻松使用。 | -| 2020.10.22 | 1.tinyint多加一个Short类型转换(感谢@wttHero的建议) | -| 2020.10.20 | 1.修复mapper2 insert代码问题(感谢@mXiaoWan的PR)
2.优化对fulltext/index关键字的处理(感谢@WEGFan的反馈)。
3.新增日期类型的转换选择(感谢@qingkediguo的建议)。
4.新增是否包装类型的转换选择(感谢@gzlicanyi的建议)。 | -| 2020.06.28 | 优化Util下的BeanUtil,支持更多map.put的操作。整合CRUD模板到SQL(CRUD)模板。 | -| 2020.06.21 | 修复FreemarkerUtil的Path问题导致JAR包运行时无法获取template的问题。 | -| 2020.05.25 | 1.一些fix,关于封装工具类以及layui模板优化等.
2.优化表备注的获取逻辑.
3.生成时间格式改为yyyy-MM-dd,移除具体的时间,只保留日期 | -| 2020.05.22 | 1.新增insert-sql模式,支持对"insert into table (xxx) values (xxx)"语句进行处理,生成java代码(感谢三叔的建议). | -| 2020.05.17 | 1.代码重构!异常处理优化,Freemarker相关工具类优化,简化模板生成部分,通过template.json来配置需要生成的模板,不需要配置java文件.
2.修复包含comment关键字时注释无法识别的问题.(感谢@1nchaos的反馈).
3.赞赏优化,感谢大家的赞赏.
4.新增mapper2(Mybatis-Annotation模板)(感谢@baisi525和@CHKEGit的建议). | -| 2020.05.03 | 1.优化对特殊字符的处理,对于包含#和$等特殊字符的,在模板使用井和¥代替便可,escapeString方法会自动处理.
2.优化mybatisplus实体类相关(感谢@chunchengmeigui的反馈).
3.修优化对所有类型的判断(感谢@cnlw的反馈).
4.移除swagger-entity,该功能已经包含在‘swagger-ui’的下拉选项中
5.升级hutool和lombok版本 | -| 2020.03.06 | 1.提交一套layuimini+mybatisplus的模板.
2.修复mybatisplus一些相关问题. | -| 2020.02.06 | 1.新增历史记录功能,自动保存最近生成的对象.
2.新增swagger开关选项和修复@Column带name参数(感谢@liuyu-struggle的建议).
3.去除mybatis模板中的方括号[]和修改模板里的类注释样式(感谢@gaohanghang的PR) | -| 2019.12.29 | 1.修复bejson安全防护策略拦截问题(感谢@liangbintao和@1808083642的反馈).
2.优化字段名含date字符串的处理(感谢@smilexzh的反馈).
3.控制台动态输出项目访问地址(感谢@gaohanghang的提交) | -| 2019.11.28 | 1.修复支持string-copy导致的以n结尾的字母不显示问题.
2.jpa-entity新增swagger@ApiModel@ApiModelProperty注解和SQL字段@Column注解(感谢@yjq907的建议) | -| 2019.11.26 | 1.springboot2内置tomcat更换为性能更强大的undertow.
2.修复tinyintTransType参数丢失问题 | -| 2019.11.24 | 1.java代码结构优化.
2.新增简单的json生成模式.
3.新增简单的正则表达式匹配模式(感谢@ydq的贡献).
4.新增对复制String代码中的乱SQL代码的支持 5.优化对JSON的父子节点/处理,JSONObject和JSONArray节点处理,子节点缺失'{'头处理 | -| 2019.11.23 | 1.移除频繁出错和被过滤的layer,改为jquery-toast.
2.Util功能优化,新增json和xml. | -| 2019.11.16 | 优化对primary关键字的处理(感谢@liujiansgit的反馈). | -| 2019.11.15 | 1.添加tinyint类型转换(感谢@lixiliang&@liujiansgit的Suggestion).
2.添加一键复制功能(感谢@gaohanghang的Suggestion).
3.Mybatis的insert增加keyProperty="id"用于返回自增id(感谢@88888888888888888888的Suggestion).
4.优化date类型的支持(感谢@SteveLsf的反馈).
5.其他一些优化. | -| 2019.10.15 | 修复jdbcTemplates中insert语句第一个字段丢失的问题. | -| 2019.09.15 | 1.添加对象getset模板.
2.添加sql模板.
3.启动类添加日志输出,方便项目使用(感谢@gaohanghang 的pull request) | -| 2019.09.10 | 优化以及更新Maven依赖,减少打包体积.
1.修复mapper接口load方法,但是xml中方法不匹配问题.
2.移除mapper中CRUD时的@param 注解,会影响xml的解析(感谢@caojiantao的反馈).
3.优化MyBatis的xml文件对Oracle的支持.(感谢@wylove1992的反馈).
4.新增对boolean的处理(感谢@violinxsc的反馈)以及优化tinyint类型生成boolean类型问题(感谢@hahaYhui的反馈) | -| 2019.09.09 | 添加是否下划线转换为驼峰的选择(感谢@youngking28 的pull request). | -| 2019.05.18 | 1.优化注释.
2.修改 mybatis模板中 controller注解.
3.修改 mybatis模板中 dao文件使用为 mapper文件.
4.修改 mybatis模板中 service实现类中的一个 bug.
5.修改 index.ftl文件中 mybatis模板的 dao -> mapper(感谢@unqin的pull request) | -| 2019.05.11 | 优化mybatis模块的dao和xml模板,修改dao接口注解为@Repository,所有dao参数改为包装类,删除update语句最后的UpdateTime = NOW(),修改dao接口文件的方法注释使其更符合javaDoc的标准,修改insert语句增加插入行主键的返回,修改load的方法名为selectByPrimaryKey,修改xml的update语句新增动态if判空,修改xml的insert语句新增动态插入判空,更符合mybatisGenerator标准(感谢@Archer-Wen的贡献 ). | -| 2019.04.29 | 新增返回封装工具类设置.
优化对oracle注释comment on column的支持(感谢@liukex反馈).
优化对普通和特殊storage关键字的判断(感谢@AhHeadFloating的反馈 ). | -| 2019.02.11 | 提交gitignore,解决StringUtils.lowerCaseFirst潜在的NPE异常,校验修改为@RequestParam参数校验,lombok之@Data和@Slf4j优化,fix JdbcDAO模板类名显示为中文问题,WebMvcConfig整合MessageConverter,模板代码分类(感谢@liutf和@tfgzs的pull request). | -| 2019.02.10 | 实体生成规则切换为包装类型,不再采用基本数据类型,为实体类生成添加显示的默认构造方法(感谢@h2so的pull request). | -| 2019.01.06 | 修复处理number/decimal(x,x)类型的逻辑(感谢@arthaschan的反馈).
修复JdbcTemplates模板两处错误(感谢@everflourish的反馈). | -| 2018.12.12 | 首页UI优化.
新增MybatisPlus模块(感谢@三叔同事的建议).
修复作者名和包名获取失败问题(感谢@Yanch1994的反馈). | -| 2018.11.22 | 优化正则表达式点号的处理,优化处理字段类型,对number类型增加int,long,BigDecimal的区分判断(感谢@lshz0088的指导). | -| 2018.11.08 | 修复非字段描述"KEY FK_xxxx (xxxx)"导致生成KEY字段情况(感谢@tornadoorz反馈). | -| 2018.10.18 | 支持double(x,x)的类型,以及comment里面包含一些特殊字符的处理(感谢@tanwubo的反馈). | -| 2018.10.10 | CDN变更,修复CDN不稳定导致网页js报错问题. | -| 2018.10.03 | 新增element-ui/bootstrap生成. | -| 2018.10.02 | 修复公共CDN之Layer.js404问题,导致项目无法生成. | -| 2018.09.27 | 优化COMMENT提取逻辑,支持多种复杂情况的注释(感谢@raodeming的反馈). | -| 2018.09.26 | 全新BeetlSQL模块,以及一些小细节优化(感谢@三叔同事的建议). | -| 2018.09.25 | 优化SQL表和字段备注的推断,包括pgsql/oralce的comment on column/table情况处理等. | -| 2018.09.18 | 优化SQL类型推断.
优化PrimaryKey判断.
修复jpacontroller中Repository拼写错误问题. | -| 2018.09.17 | 全新首页,静态文件全部采用CDN.新增jdbcTemplate模块. | -| 2018.09.16 | 1.优化oracle支持,优化DDL语句中"或者'或者空格的支持.
2.补充char/clob/blob/json等类型,如果类型未知,默认为String. | -| 2018.09.15 | 新增Swagger-UI模板.修复一些命名和导入问题.JPA的Entity默认第一个字段为Id,如果不是请手工修改. | -| 2018.09.13 | 修复字段没有描述以及类型为DATE型导致的问题.新增JPA的Controller模板. | -| 2018.08.31 | 初始化项目.新增JPA系列Entity+Repository模板. | +| 更新日期 | 更新内容 | +|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 2023.01.01 | 新增GCP BigQuery/Dataflow JJS/QlikSense BI模板。 | +| 2022.09.28 | MySQL to Java type conversion 数据库类型转换优化(感谢@jadelike得贡献) | +| 2022.07.02 | add the script to install and run,添加批处理以便直接构建或运行项目。 | +| 2022.02.10 | 更新springboot、fastjson、lombok依赖(感谢@Abbykawai的建议)。 | +| 2022.02.09 | 新增JPA-STARP模板(感谢@starplatinum3的贡献)。 | +| 2022.01.11 | 优化mybatis的mapper文件生成(感谢@chendong的贡献)。 | +| 2021.10.31 | 优化当有索引和额外的换行时的解析逻辑(感谢@feitian124的贡献)。
修复部分模板参数不对应(感谢@Thixiaoxiao的贡献)。
新增cookie记录所需配置字段逻辑,避免重复配置(感谢@Thixiaoxiao的贡献)。 | +| 2021.08.07 | 新增当前模板保持功能,重新生成代码后依然会保持在当前选择模板。
新增renren-fast模板。 | +| 2021.08.05 | 解决 update 方法语法错误;调整部分语句避免sonarLint告警(感谢@Henry586的PR);
add swagger-yml.ftl(感谢@fuuqiu的PR);
支持common-mapper&修复entity和plusentity的swagger引包错误(感谢@chentianming11的PR) | +| 2021.03.24 | 修复Mybatis.XML中缺失test=关键字问题。(感谢@BWHN/YUEHUI的反馈)。 | +| 2021.01.18 | OEM信息优化,支持多配置文件模式,支持在application*.yml自定义信息,以及切换local/cdn模式。 | +| 2021.01.17 | 生成后自动trim掉前后空格输出。
完善ReadMe文档。
优化云CDN引入部分。
优化returnUtil部分。
表明前缀选项(感谢@wwlg的建议)。
是否带字段注释设置(感谢@fengpojian的建议)。
优化Mybatis的''!=判断(感谢@zhongsb的建议)。
Mybatis-Plus增加Service层(感谢@yf466532479的建议)。 | +| 2021.01.16 | 全新3.0版本:
一、前端半vue半js化,更多动态加载项。
二、支持更多生成设置,优化生成场景。
三、js导入支持本地/CDN模式,支持断网环境轻松使用。 | +| 2020.10.22 | 1.tinyint多加一个Short类型转换(感谢@wttHero的建议) | +| 2020.10.20 | 1.修复mapper2 insert代码问题(感谢@mXiaoWan的PR)
2.优化对fulltext/index关键字的处理(感谢@WEGFan的反馈)。
3.新增日期类型的转换选择(感谢@qingkediguo的建议)。
4.新增是否包装类型的转换选择(感谢@gzlicanyi的建议)。 | +| 2020.06.28 | 优化Util下的BeanUtil,支持更多map.put的操作。整合CRUD模板到SQL(CRUD)模板。 | +| 2020.06.21 | 修复FreemarkerUtil的Path问题导致JAR包运行时无法获取template的问题。 | +| 2020.05.25 | 1.一些fix,关于封装工具类以及layui模板优化等.
2.优化表备注的获取逻辑.
3.生成时间格式改为yyyy-MM-dd,移除具体的时间,只保留日期 | +| 2020.05.22 | 1.新增insert-sql模式,支持对"insert into table (xxx) values (xxx)"语句进行处理,生成java代码(感谢三叔的建议). | +| 2020.05.17 | 1.代码重构!异常处理优化,Freemarker相关工具类优化,简化模板生成部分,通过template.json来配置需要生成的模板,不需要配置java文件.
2.修复包含comment关键字时注释无法识别的问题.(感谢@1nchaos的反馈).
3.赞赏优化,感谢大家的赞赏.
4.新增mapper2(Mybatis-Annotation模板)(感谢@baisi525和@CHKEGit的建议). | +| 2020.05.03 | 1.优化对特殊字符的处理,对于包含#和$等特殊字符的,在模板使用井和¥代替便可,escapeString方法会自动处理.
2.优化mybatisplus实体类相关(感谢@chunchengmeigui的反馈).
3.修优化对所有类型的判断(感谢@cnlw的反馈).
4.移除swagger-entity,该功能已经包含在‘swagger-ui’的下拉选项中
5.升级hutool和lombok版本 | +| 2020.03.06 | 1.提交一套layuimini+mybatisplus的模板.
2.修复mybatisplus一些相关问题. | +| 2020.02.06 | 1.新增历史记录功能,自动保存最近生成的对象.
2.新增swagger开关选项和修复@Column带name参数(感谢@liuyu-struggle的建议).
3.去除mybatis模板中的方括号[]和修改模板里的类注释样式(感谢@gaohanghang的PR) | +| 2019.12.29 | 1.修复bejson安全防护策略拦截问题(感谢@liangbintao和@1808083642的反馈).
2.优化字段名含date字符串的处理(感谢@smilexzh的反馈).
3.控制台动态输出项目访问地址(感谢@gaohanghang的提交) | +| 2019.11.28 | 1.修复支持string-copy导致的以n结尾的字母不显示问题.
2.jpa-entity新增swagger@ApiModel@ApiModelProperty注解和SQL字段@Column注解(感谢@yjq907的建议) | +| 2019.11.26 | 1.springboot2内置tomcat更换为性能更强大的undertow.
2.修复tinyintTransType参数丢失问题 | +| 2019.11.24 | 1.java代码结构优化.
2.新增简单的json生成模式.
3.新增简单的正则表达式匹配模式(感谢@ydq的贡献).
4.新增对复制String代码中的乱SQL代码的支持 5.优化对JSON的父子节点/处理,JSONObject和JSONArray节点处理,子节点缺失'{'头处理 | +| 2019.11.23 | 1.移除频繁出错和被过滤的layer,改为jquery-toast.
2.Util功能优化,新增json和xml. | +| 2019.11.16 | 优化对primary关键字的处理(感谢@liujiansgit的反馈). | +| 2019.11.15 | 1.添加tinyint类型转换(感谢@lixiliang&@liujiansgit的Suggestion).
2.添加一键复制功能(感谢@gaohanghang的Suggestion).
3.Mybatis的insert增加keyProperty="id"用于返回自增id(感谢@88888888888888888888的Suggestion).
4.优化date类型的支持(感谢@SteveLsf的反馈).
5.其他一些优化. | +| 2019.10.15 | 修复jdbcTemplates中insert语句第一个字段丢失的问题. | +| 2019.09.15 | 1.添加对象getset模板.
2.添加sql模板.
3.启动类添加日志输出,方便项目使用(感谢@gaohanghang 的pull request) | +| 2019.09.10 | 优化以及更新Maven依赖,减少打包体积.
1.修复mapper接口load方法,但是xml中方法不匹配问题.
2.移除mapper中CRUD时的@param 注解,会影响xml的解析(感谢@caojiantao的反馈).
3.优化MyBatis的xml文件对Oracle的支持.(感谢@wylove1992的反馈).
4.新增对boolean的处理(感谢@violinxsc的反馈)以及优化tinyint类型生成boolean类型问题(感谢@hahaYhui的反馈) | +| 2019.09.09 | 添加是否下划线转换为驼峰的选择(感谢@youngking28 的pull request). | +| 2019.05.18 | 1.优化注释.
2.修改 mybatis模板中 controller注解.
3.修改 mybatis模板中 dao文件使用为 mapper文件.
4.修改 mybatis模板中 service实现类中的一个 bug.
5.修改 index.ftl文件中 mybatis模板的 dao -> mapper(感谢@unqin的pull request) | +| 2019.05.11 | 优化mybatis模块的dao和xml模板,修改dao接口注解为@Repository,所有dao参数改为包装类,删除update语句最后的UpdateTime = NOW(),修改dao接口文件的方法注释使其更符合javaDoc的标准,修改insert语句增加插入行主键的返回,修改load的方法名为selectByPrimaryKey,修改xml的update语句新增动态if判空,修改xml的insert语句新增动态插入判空,更符合mybatisGenerator标准(感谢@Archer-Wen的贡献 ). | +| 2019.04.29 | 新增返回封装工具类设置.
优化对oracle注释comment on column的支持(感谢@liukex反馈).
优化对普通和特殊storage关键字的判断(感谢@AhHeadFloating的反馈 ). | +| 2019.02.11 | 提交gitignore,解决StringUtils.lowerCaseFirst潜在的NPE异常,校验修改为@RequestParam参数校验,lombok之@Data和@Slf4j优化,fix JdbcDAO模板类名显示为中文问题,WebMvcConfig整合MessageConverter,模板代码分类(感谢@liutf和@tfgzs的pull request). | +| 2019.02.10 | 实体生成规则切换为包装类型,不再采用基本数据类型,为实体类生成添加显示的默认构造方法(感谢@h2so的pull request). | +| 2019.01.06 | 修复处理number/decimal(x,x)类型的逻辑(感谢@arthaschan的反馈).
修复JdbcTemplates模板两处错误(感谢@everflourish的反馈). | +| 2018.12.12 | 首页UI优化.
新增MybatisPlus模块(感谢@三叔同事的建议).
修复作者名和包名获取失败问题(感谢@Yanch1994的反馈). | +| 2018.11.22 | 优化正则表达式点号的处理,优化处理字段类型,对number类型增加int,long,BigDecimal的区分判断(感谢@lshz0088的指导). | +| 2018.11.08 | 修复非字段描述"KEY FK_xxxx (xxxx)"导致生成KEY字段情况(感谢@tornadoorz反馈). | +| 2018.10.18 | 支持double(x,x)的类型,以及comment里面包含一些特殊字符的处理(感谢@tanwubo的反馈). | +| 2018.10.10 | CDN变更,修复CDN不稳定导致网页js报错问题. | +| 2018.10.03 | 新增element-ui/bootstrap生成. | +| 2018.10.02 | 修复公共CDN之Layer.js404问题,导致项目无法生成. | +| 2018.09.27 | 优化COMMENT提取逻辑,支持多种复杂情况的注释(感谢@raodeming的反馈). | +| 2018.09.26 | 全新BeetlSQL模块,以及一些小细节优化(感谢@三叔同事的建议). | +| 2018.09.25 | 优化SQL表和字段备注的推断,包括pgsql/oralce的comment on column/table情况处理等. | +| 2018.09.18 | 优化SQL类型推断.
优化PrimaryKey判断.
修复jpacontroller中Repository拼写错误问题. | +| 2018.09.17 | 全新首页,静态文件全部采用CDN.新增jdbcTemplate模块. | +| 2018.09.16 | 1.优化oracle支持,优化DDL语句中"或者'或者空格的支持.
2.补充char/clob/blob/json等类型,如果类型未知,默认为String. | +| 2018.09.15 | 新增Swagger-UI模板.修复一些命名和导入问题.JPA的Entity默认第一个字段为Id,如果不是请手工修改. | +| 2018.09.13 | 修复字段没有描述以及类型为DATE型导致的问题.新增JPA的Controller模板. | +| 2018.08.31 | 初始化项目.新增JPA系列Entity+Repository模板. | # ClassInfo/TableInfo |名称|说明| diff --git a/generator-web/src/main/resources/application-bejson.yml b/generator-web/src/main/resources/application-bejson.yml index 40da0979..b80cdf37 100644 --- a/generator-web/src/main/resources/application-bejson.yml +++ b/generator-web/src/main/resources/application-bejson.yml @@ -47,7 +47,7 @@ spring: #mvc: # static-path-pattern: /statics/** OEM: - version: 3.2 + version: 2023.1 header: SQL转Java JPA、MYBATIS实现类代码生成平台 keywords: sql转实体类,sql转DAO,SQL转service,SQL转JPA实现,SQL转MYBATIS实现 title: JAVA在线代码生成 diff --git a/generator-web/src/main/resources/application-dev.yml b/generator-web/src/main/resources/application-dev.yml index 42869ce0..fd3546a9 100644 --- a/generator-web/src/main/resources/application-dev.yml +++ b/generator-web/src/main/resources/application-dev.yml @@ -47,7 +47,7 @@ spring: #mvc: # static-path-pattern: /statics/** OEM: - version: 3.2 + version: 2023.1 header: SQL转Java JPA、MYBATIS实现类代码生成平台 keywords: sql转实体类,sql转DAO,SQL转service,SQL转JPA实现,SQL转MYBATIS实现 title: JAVA代码生成平台 diff --git a/generator-web/src/main/resources/application-devtools.yml b/generator-web/src/main/resources/application-devtools.yml index 6b2a9d31..381032e4 100644 --- a/generator-web/src/main/resources/application-devtools.yml +++ b/generator-web/src/main/resources/application-devtools.yml @@ -47,7 +47,7 @@ spring: #mvc: # static-path-pattern: /statics/** OEM: - version: 3.2 + version: 2023.1 header: SQL转Java JPA、MYBATIS实现类代码生成平台 keywords: sql转实体类,sql转DAO,SQL转service,SQL转JPA实现,SQL转MYBATIS实现 title: JAVA在线代码生成 diff --git a/generator-web/src/main/resources/template.json b/generator-web/src/main/resources/template.json index 13c6cb21..89f0f5fb 100644 --- a/generator-web/src/main/resources/template.json +++ b/generator-web/src/main/resources/template.json @@ -230,7 +230,6 @@ } ] }, - { "group": "jpa-starp", "templates": [{ @@ -249,5 +248,28 @@ "description": "jpacontroller" } ] + }, + { + "group": "bi", + "templates": [{ + "id": "201", + "name": "qliksense", + "description": "qlik sense" + }] + }, + { + "group": "cloud", + "templates": [ + { + "id": "301", + "name": "bigquery", + "description": "GCP BigQuery" + }, + { + "id": "302", + "name": "dataflowjjs", + "description": "GCP Dataflow JJS" + } + ] } -] +] \ No newline at end of file diff --git a/generator-web/src/main/resources/templates/code-generator/bi/qliksense.ftl b/generator-web/src/main/resources/templates/code-generator/bi/qliksense.ftl new file mode 100644 index 00000000..ee67a0e4 --- /dev/null +++ b/generator-web/src/main/resources/templates/code-generator/bi/qliksense.ftl @@ -0,0 +1,94 @@ +//*************************** +//[${classInfo.classComment} - ${classInfo.tableName}] +//AUTHOR ${authorName} +//HISTORY ${.now?string('yyyy-MM-dd')} +//*************************** + +//*************************** +//load all +[${classInfo.tableName}]: +LOAD * FROM ['LIB://QVD/${classInfo.className}.qvd'](qvd); + +//*************************** +//load columns +[${classInfo.tableName}]: +LOAD +<#list classInfo.fieldList as fieldItem > + "${fieldItem.columnName}" as "${fieldItem.fieldName}"<#if fieldItem_has_next>, + +FROM +['LIB://QVD/${classInfo.className}.qvd'](qvd); +; + +//load inline +[${classInfo.tableName}]: +LOAD * INLINE +[ +<#list classInfo.fieldList as fieldItem >${fieldItem.columnName} <#if fieldItem_has_next>, +<#list classInfo.fieldList as fieldItem >${fieldItem.fieldName} <#if fieldItem_has_next>, +<#list classInfo.fieldList as fieldItem >${fieldItem.fieldComment} <#if fieldItem_has_next>, +]; + +//*************************** +//load from api data connection (wrap on) +LIB CONNECT TO '${classInfo.tableName}_api'; + +RestConnectorMasterTable: + SQL SELECT + "__KEY_root", + (SELECT +<#list classInfo.fieldList as fieldItem > + "${fieldItem.columnName}" + + "__FK_object" + FROM "object" FK "__FK_object") + FROM JSON (wrap on) "root" PK "__KEY_root" +// WITH CONNECTION ( +// Url "https://localhost:8080/${classInfo.tableName}_api", +// QUERY "page" "1", +// QUERY "size" "100", +// HTTPHEADER "token" "123456", +// BODY "Post body here") +; + +[${classInfo.className}]: +LOAD +<#list classInfo.fieldList as fieldItem > + [${fieldItem.columnName}] as [${fieldItem.fieldName}] + + [__FK_object] AS [__KEY_root] +RESIDENT RestConnectorMasterTable +WHERE NOT IsNull([__FK_stores]); + +DROP TABLE [${classInfo.className}]; +DROP TABLE RestConnectorMasterTable; + +//*************************** +//load from api data connection (wrap off) +LIB CONNECT TO '${classInfo.tableName}_api'; +[${classInfo.className}]: +SQL SELECT +<#list classInfo.fieldList as fieldItem > + [${fieldItem.fieldName}] as [${fieldItem.fieldName}]<#if fieldItem_has_next>, + +FROM JSON(wrap off) "${classInfo.className}" +// WITH CONNECTION ( +// Url "https://localhost:8080/${classInfo.tableName}_api", +// QUERY "page" "1", +// QUERY "size" "100", +// HTTPHEADER "token" "123456", +// BODY "Post body here") +; + +//*************************** +//load from sql data connection +LIB CONNECT TO '${classInfo.tableName}_db'; + +SQL SELECT +<#list classInfo.fieldList as fieldItem > + [${fieldItem.columnName}] as [${fieldItem.fieldName}]<#if fieldItem_has_next>, + +FROM + ${classInfo.tableName} +WHERE + Create_Time > '2023-01-01 00:00:00'; \ No newline at end of file diff --git a/generator-web/src/main/resources/templates/code-generator/cloud/bigquery.ftl b/generator-web/src/main/resources/templates/code-generator/cloud/bigquery.ftl new file mode 100644 index 00000000..11dfe3d6 --- /dev/null +++ b/generator-web/src/main/resources/templates/code-generator/cloud/bigquery.ftl @@ -0,0 +1,17 @@ + +SELECT * FROM 'your_project.your_dataset.${tableName}' t +order by t.id desc +LIMIT 100 +; + +SELECT * FROM 'your_project.your_dataset.${tableName}_error_records' t +order by t.timestamp desc +LIMIT 100 +; + +bigquery table -> SCHEMA -> Edit as text , then input below text: +[ +<#list classInfo.fieldList as fieldItem > + {"name":"${fieldItem.columnName}",type:"STRING","mode":"NULLABLE","description": "${fieldItem.fieldName} - ${fieldItem.fieldComment}"}<#if fieldItem_has_next>, + +] \ No newline at end of file diff --git a/generator-web/src/main/resources/templates/code-generator/cloud/dataflowjjs.ftl b/generator-web/src/main/resources/templates/code-generator/cloud/dataflowjjs.ftl new file mode 100644 index 00000000..2f2d9f2e --- /dev/null +++ b/generator-web/src/main/resources/templates/code-generator/cloud/dataflowjjs.ftl @@ -0,0 +1,38 @@ +/** +* GCP - dataflow job jjs for [${classInfo.classComment} - ${classInfo.tableName}] +* AUTHOR ${authorName} +* +* User-defined function (UDF) to transform events as part of a Dataflow template job. +* upload to GCS and create dataflow job with this js file and method as 'process' +* @param {string} inJson input Pub/Sub JSON message (stringified) +* @return {string} outJson output JSON message (stringified) +*/ +function process(inJson) { + //for local js debug + //var obj = JSON.parse(JSON.stringify(inJson)); + //for online jjs + var obj = JSON.parse(inJson); + var includePubsubMessage = obj.data && obj.attributes; + var data = includePubsubMessage ? obj.data : obj; + //debug and show error if you need special logic + if(data.hasOwnProperty('show_error')){ + throw new ERROR("show_error:"+JSON.stringify(data)) + } + // INSERT CUSTOM TRANSFORMATION LOGIC HERE + var tableObj= {}; + tableObj.insert_time=new Date().toUTCString() +<#list classInfo.fieldList as fieldItem > + tableObj.${fieldItem.columnName}=data.${fieldItem.fieldName} + + return JSON.stringify(tableObj); +} + +//field name = field name +<#list classInfo.fieldList as fieldItem > + tableObj.${fieldItem.fieldName}=data.${fieldItem.fieldName} + + +//column name = column name +<#list classInfo.fieldList as fieldItem > + tableObj.${fieldItem.columnName}=data.${fieldItem.columnName} + \ No newline at end of file