V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GrapeCityChina
V2EX  ›  推广

如何通过执行 SQL 为低代码项目提速?

  •  
  •   GrapeCityChina · 2022-09-30 16:07:04 +08:00 · 618 次点击
    这是一个创建于 546 天前的主题,其中的信息可能已经有所发展或是发生改变。

    见多了 SQL 为代码开发提速,那么当低代码遇到 SQL 会擦出怎样的火花呢?本文将低代码和 SQL 结合进行介绍,让大家了解如何通过执行 SQL 为低代码项目提速。

    背景

    自从计算机诞生的一刻起,如何让计算机能够按照人类的需求进行工作,满足人类的需要就成为了一个问题,于是便诞生了计算机语言。最初的计算机语言是由 0 和 1 构成的机器语言,用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合,运行快,但是不容易使用,上手困难且难易理解。为了克服机器语言的缺点,人们将机器指令的代码用英文助记符来表示,代替机器语言中的指令和数据。便诞生了第二代编程语言——汇编语言,汇编语言在一定程度中克服了机器语言难以学习使用的缺点,同时保证了执行速度快的优点,但是汇编语言的通用性,可读性还是很低。于是就诞生了以人类的日常语言为基础的一种编程语言,就是第三代编程语言——高级语言,像我们熟知的 JAVA 、JS 、C#等都属于第三代编程语言。

    高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好地描述格中算法,而且更易学习掌握,也是目前被程序员所使用的最为广泛的语言,但是,第三代语言对于业务人员来说还是难以理解。需要在编程上有专门的训练才能使用。于是便诞生了第四代语言,即面向问题的语言。第四代语言是非常高级的语言,用户只需要简单的培训即可参与编程,解决特定的问题。同时,第四代语言比第三代语言更接近日常语言,更容易编程,更广泛地被非专业程序员所使用。像我们今天的主角——SQL 就属于第四代语言,使用者并不需要告诉计算机要怎么做,只需要告诉它执行命令内容即可。而低代码平台诞生可以追溯到第四代语言,第四代语言的主要特点就是简单易学、上手快。那使用第四代语言 SQL 再加上本来开发周期就短的低代码,能擦出怎么样的火花呢?

    SQL 与低代码的碰撞

    我们先来看看没有使用 SQL 功能的低代码是如何开发一个项目与数据库进行交互的,这里使用企业级低代码开发平台-活字格为例向大家介绍。活字格中是有数据库这个概念的,而且活字格在更新迭代的过程中也有从“无执行 SQL 功能”到“有执行 SQL 功能”的一个变化,这一过程正好可以作为展示执行 SQL 为低代码提速的最好例子。 早些时候,大多数的低代码平台没有直接执行 SQL 功能,平台通过一些类似 SQL 功能去实现数据处理,比如活字格中的 odata 、数据表操作等功能,以实现执行数据表基本的 DML 操作。但是一旦明对更加复杂的业务场景,需要执行 SQL 才能实现时,就不免显得捉襟见肘。其性能对比执行 SQL 命令也有显著差距,可以看到使用执行 SQL 命令原本需要 73 秒才能做完的插入 5000 行数据操作,现在 1.5 秒的时间就可以完成了。

    由此可见在低代码项目中执行 SQL 可以大大提升低代码项目的搭建速度,提升低代码开发效率,使得开发效率本来就较高的低代码项目效率更高,那说了这么多执行 SQL 的优点,如何在低代码项目中执行 SQL 呢。还是以活字格这款企业级低代码开发平台来举例。 使用 SQL 功能可以实现很多复杂的功能,比如:编写和调用存储过程、创建临时表、创建表索引、创建多个联合查询等。这里找两个简单的例子给大家介绍一下如何在低代码项目中使用 SQL 。现在有数据表的设计如下:课程表(课程号、课程名、学分)、学生表(学号、姓名、性别、专业)、分数表(学号、课程号、分数)。然后现在的需求是输入课程名和学生名来查询这个学生的分数,那在活字格中怎么做呢,我们一起来操作下。 首先设置前端页面,将活字格中的文本框单元格类型,按钮单元格类型,设置在活字格的设计器页面中。

    新建一个服务端命令,增加参数学生名,和课程名参数,命令中新建执行 SQL 命令,数据库选择内建库(如果使用外联数据库也可以通过连接字符串直接在外联数据库中操作),添加学生名和课程名参数,参数值直接从服务端命令接收的参数值中获取即可,写 SQL 语句如下 SELECT 分数表.分数 FROM 分数表 join 课程表 on 分数表.课程号 = 课程表.课程号 join 学生表 on 分数表.学号 = 学生表.学号 where 学生表.姓名=@学生名 and 课程表.课程名 =@课程名;将执行 SQL 结果,也就是返回值写到变量 SQL 数组中。由于执行 SQL 命令返回的结果是一个 json 对象数组,所以需要使用循环命令去取得数组中的每个 Json 对象,再去取值即可。这里示例中当确定了姓名和课程名之后,分数就确定了,也就是 SQL 查询的结果中只有一条记录,所以循环第一次就可以使用返回命令将分数的值返回出来。

    在页面中的按钮再使用调用服务端命令,调用构建好的 SQL 命令。学生名和课程名选择设计好的文本框,将返回值返回到页面中的分数。这样就实现了这个需求了。

    我们可以看一下执行效果,学生名输入张三,课程名输入语文,点击查询,分数便显示 88 。

    这样,这个需求在低代码中就可以通过执行 SQL 实现了。我们来换一下需求,改为输入一个学生名查询出这个学生全部课程的成绩。还是以活字格为例,我们只需对上面的一些步骤做更改即可。 首先,设置页面的步骤中,将课程名和课程名后的文本框删除掉,分数区域改为设置一个表格,表格中有课程列和分数列。

    服务端命令中删除课程名参数,服务端命令中的执行 SQL 命令也删除课程名参数,修改 SQL 语句如下 SELECT 分数表、分数、课程表、课程名 FROM 、分数表 join 课程表 on 分数表、课程号 = 课程表、课程号 join 学生表 on 分数表、学号 = 学生表、学号 where 学生表、姓名=@学生名,直接将查询的数组结果返回出去。

    在前端调用时,将调用服务端命令的结果保存在 SQL 数组变量中,然后直接使用导入 Json 数据到表格命令将 json 对象数组导入到表格。

    可以看到,在浏览器中文本框输入张三,点击查询,即可查询出张三全部的课程和分数。由此可见,通过执行 SQL 可以大大的提升低代码项目的开发效率,在需求变化是也能很高速的通过修改 SQL 语句和低代码工程实现更改后的需求。

    当然,这里只举了两个简单的例子来为大家展示如何通过执行 SQL 为低代码项目提速,一些更复杂的需求如编写和调用存储过程,创建临时表等,都是可以通过执行 SQL 在低代码项目中实现的。大家如果感兴趣得话,可以找找相关的低代码产品来更详细的了解一下。

    如果想了解更多地低代码技术知识访问: https://help.grapecity.com.cn/display/lowcode

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4233 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 10:11 · PVG 18:11 · LAX 03:11 · JFK 06:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.