见多了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

如何通过执行SQL为低代码项目提速?的更多相关文章

  1. 使用BAT批处理执行sql语句的代码

    使用BAT批处理执行sql语句的代码 有时候需要执行一些Sql语句时,不想开企业管理器,或者是发给客户执行但那边又不懂代码,这时就可以用下面方法 1.把待执行Sql保存在一个文件,这里为2011022 ...

  2. PHP执行.SQL文件的实例代码分享

    介绍下使用PHP执行.SQL文件的代码一例,分享下. demo.php: <?php ) )) ) ENGINE) unsigned ) unsigned )) ) ENGINE) unsign ...

  3. python代码执行SQL文件(逐句执行)

    一.简介 关于Python如何连接数据库并执行SQL语句,几乎所有的Python教程都会讲,教程里基本只介绍了执行单条SQL语句的方法,但是实际生产过程中可不只是执行一两条语句,动辄几十条甚至上百条的 ...

  4. 开源低代码平台开发实践二:从 0 构建一个基于 ER 图的低代码后端

    前后端分离了! 第一次知道这个事情的时候,内心是困惑的. 前端都出去搞 SPA,SEO 们同意吗? 后来,SSR 来了. 他说:"SEO 们同意了!" 任何人的反对,都没用了,时代 ...

  5. JDBC 复习4 批量执行SQL

    1使用jdbc进行批量执行SQL在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. package dbe ...

  6. 基于低代码平台(Low Code Platform)开发中小企业信息化项目

    前言:中小企业信息化需求强烈,对于开发中小企业信息化项目的软件工作和程序员来说,如何根据中小企业的特点,快速理解其信息化项目的需求并及时交付项目,是一个值得关注和研讨的话题. 最近几年来,随着全球经济 ...

  7. C#和Java中执行SQL文件脚本的代码(非常有用)

    原文:C#和Java中执行SQL文件脚本的代码(非常有用) 我们在做程序的时候有事后会涉及到利用sql文件 直接执行,可是在sql文件中有很多注释,我们要一句一句的执行首先必须的得把sql文件解析 去 ...

  8. kettle用mysql创建资源库执行sql代码报错

    一.原因:  sql语句里边使用 'Y' 'N'  给boolean类型的赋值产生sql失败    二.解决方法:将insert语句中‘Y’或‘N’ 改成TRUE或FALSE即可,共两张表3个地方  ...

  9. PHP mysqli 增强 批量执行sql 语句的实现代码

    本篇文章介绍了,在PHP中 mysqli 增强 批量执行sql 语句的实现代码.需要的朋友参考下. mysqli 增强-批量执行sql 语句 <?php //mysqli 增强-批量执行sql ...

随机推荐

  1. 我有 7种 实现web实时消息推送的方案,7种!

    技术交流,公众号:程序员小富 大家好,我是小富- 我有一个朋友- 做了一个小破站,现在要实现一个站内信web消息推送的功能,对,就是下图这个小红点,一个很常用的功能. 不过他还没想好用什么方式做,这里 ...

  2. cookie和seesion的区别和联系

    今天来聊聊cookie和session的区别和联系.首先先确定一个各自的定义吧: cookies: 网站用于鉴别用户身份和追踪用户登录状态. 存在于浏览器端的一小段文本数据 session: 中文称之 ...

  3. 使用Three.js实现炫酷的赛博朋克风格3D数字地球大屏 🌐

    声明:本文涉及图文和模型素材仅用于个人学习.研究和欣赏,请勿二次修改.非法传播.转载.出版.商用.及进行其他获利行为. 背景 近期工作有涉及到数字大屏的需求,于是利用业余时间,结合 Three.js ...

  4. python 进程理解

    简介 线程理解中介绍过,再回顾一遍,一个应用程序由多个进程组成,一个进程由多个线程组成,由操作系统根据优先级.时间片来绝对线程的运行 进程 python的进程不同于线程,在主流的cpython解释器下 ...

  5. Spring源码学习笔记9——构造器注入及其循环依赖

    Spring源码学习笔记9--构造器注入及其循环依赖 一丶前言 前面我们分析了spring基于字段的和基于set方法注入的原理,但是没有分析第二常用的注入方式(构造器注入)(第一常用字段注入),并且在 ...

  6. CSS3 基础学习

    CSS基础学习 当前进度[P78] 参考资料 视频链接:https://www.bilibili.com/video/BV14J4114768 菜鸟教程:https://www.runoob.com/ ...

  7. s905l3a系列刷armbian 教你从0搭建自己的博客

    最近服务器又更换了,原来的有一点点小意外(一个电阻给我焊接时搞掉了). 哎~~今天,我淘到了一个好东西----CM311-3a,配置很诱人,价格也不贵,60绰绰有余 比较 CM311-3a N1(炒到 ...

  8. Linux入门操作介绍

    Linux 是由unix衍生而来(小知识:mac也是使用unix核心),由全世界的程序员一起开发的开源系统.如今基于linux已经有了很多版本,我们后面使用的就是衍生版本之一的Ubuntu. Ubun ...

  9. Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制

    一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...

  10. Web优化躬行记(6)——优化闭环实践

    在遇到一个页面性能问题时,我理解的优化闭环是:分析.策略.验证和沉淀. 分析需要有分析数据,因此得有一个性能监控管理. 策略就是制订针对性的优化方案,解决当前遇到的问题. 验证的对象上述策略,判断方案 ...