java和数据库运维(数据接口配置服务)
java和数据库运维(数据接口配置服务) 而 DataQL 有很大不同。虽然 DataQL 提供了非常出色的基于 SQL 数据存取能力。但从技术架构上来审视,可以看出它并不是 ORM 框架。 它没有 ORM 中最关键的 Mapping 过程。DataQL 专注的是:结果转换、数据和服务的聚合查询。 ORM 类框架有一个最大的特点是具有 Mapping 过程,然后通过框架在进行 CURD 操作。 例如:Mybatis、Hibernate。其中有一些甚至做到了更高级的界面化例如: apijson,但其本质依然是 ORM。 主打场景并不是说 Dataway 适用范围仅限于此,而是经过多次项目实践。我们认为下面这些场景会有非常好的预期效果。 比如说 取数据 在一些报表、看板项目中即便是取数据逻辑在复杂。我们依然做到了真正的 零 开发,所有取数逻辑全部通过 DataQL SQL 的方式满足。 对比往期项目对于后端技术人员的需求从
Dataway 数据接口配置服务依托 DataQL 服务聚合能力,为应用提供一个 UI 界面。并以 jar 包的方式集成到应用中。 通过 Dataway 可以直接在界面上配置和发布接口。
这种模式的革新使得开发一个接口不必在编写任何形式的代码,只需要配置一条 DataQL 查询即可完成满足前端对接口的需求。 从而避免了从数据库到前端之间一系列的开发配置任务,例如:Mapper、DO、DAO、Service、Controller 统统不在需要。
Dataway特意采用了 jar包集成的方式发布,这使得任意的老项目都可以无侵入的集成 Dataway。 直接改进老项目的迭代效率,大大减少企业项目研发成本。
如上图所示 Dataway 在开发模式上提供了巨大的便捷。 虽然工作流程中标识了由后端开发来配置 DataQL 接口,但这主要是出于考虑接口责任人。 但在实际工作中根据实际情况需要,配置接口的人员可以是产品研发生命周期中任意一名角色。
主打场景
主打场景并不是说 Dataway 适用范围仅限于此,而是经过多次项目实践。我们认为下面这些场景会有非常好的预期效果。 比如说 取数据 在一些报表、看板项目中即便是取数据逻辑在复杂。我们依然做到了真正的 零 开发,所有取数逻辑全部通过 DataQL SQL 的方式满足。 对比往期项目对于后端技术人员的需求从 3~5 人的苦逼通宵加班,直接缩减为 1人配置化搞定。
再比如,某个内部类 ERP 项目,20多个表单页面,后端部分仅有 1000 行左右的核心代码。其它数据存取逻辑全部配置化完成。
- 取数据如果你只想从数据库或者服务中获取某类数据,不需要: VO、BO、Convert、DO、Mapper 这类东西。
- 存数据如果是从页面表单递交数据到数据库或者服务,免去 BO、FormBean、DO、Mapper 这类东西。
- 数据聚合基于服务调用结果经过结构转换并响应给前端。将数据库和服务等多个结果进行汇聚然后返回给前端。
技术架构
刚一接触 DataQL 可能会有一种错觉认为 DataQL 是一个高级别的 ORM 工具。 这一点需要澄清。DataQL 的竞品应是 GraphQL,而非 ORM 框架。
ORM 类框架有一个最大的特点是具有 Mapping 过程,然后通过框架在进行 CURD 操作。 例如:Mybatis、Hibernate。其中有一些甚至做到了更高级的界面化例如: apijson,但其本质依然是 ORM。
而 DataQL 有很大不同。虽然 DataQL 提供了非常出色的基于 SQL 数据存取能力。但从技术架构上来审视,可以看出它并不是 ORM 框架。 它没有 ORM 中最关键的 Mapping 过程。DataQL 专注的是:结果转换、数据和服务的聚合查询。
造成 ORM 错觉的是由于 DataQL 充分利用 Udf 和 Fragment 奇妙的组合,提供了更便捷的数据库存储逻辑配置化而已。
接口配置界面
更新内容:
Dataway 4.1.6 发布,修复社区反馈的 Bug,同时可以自定义返回结构了
Hasor v4.1.6 (2020-05-10)
修复
- issue oracle 分页模式下 select count 语句无法正确执行。
Hasor v4.1.5 (2020-05-09)
新增
- issue 接口可以自定义返回值,完美兼容老项目的接口规范。
- issue 增加 ConvertUdfSource 类型转换函数包。
优化
- FxSql 工具类抽象出 FxQuery 接口 和 SqlFxQuery 实现类。
- issue 优化了一下交互,新建接口情况下 comment 不会主动显示出来。
修复
- issue DatawayService 接口使用 @Bean 在 Spring 中配置报错。
- issue SQL模式下保存api之后,点击编辑再进入,没有显示之前保存的信息。
- issue 分页模式下,FRAGMENT_SQL_COLUMN_CASE 不起作用。
本次升级数据库表结构有所变更
Mysql升级脚本:
alter table interface_info add api_option mediumtext null comment '扩展配置信息' after api_sample;
alter table interface_release add pub_option mediumtext null comment '扩展配置信息' after pub_sample;
Oracle升级脚本:
alter table interface_info add api_option clob / comment on column interface_info.api_option is '扩展配置信息' / alter table interface_release add pub_option clob / comment on column interface_release.pub_option is '扩展配置信息' /
接口除了 DataQL 查询结果可以完全自定义之外,编辑页面中还提供了最外层结构的定制化。