如何通过执行SQL为低代码项目提速?
见多了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为低代码项目提速?的更多相关文章
- 使用BAT批处理执行sql语句的代码
使用BAT批处理执行sql语句的代码 有时候需要执行一些Sql语句时,不想开企业管理器,或者是发给客户执行但那边又不懂代码,这时就可以用下面方法 1.把待执行Sql保存在一个文件,这里为2011022 ...
- PHP执行.SQL文件的实例代码分享
介绍下使用PHP执行.SQL文件的代码一例,分享下. demo.php: <?php ) )) ) ENGINE) unsigned ) unsigned )) ) ENGINE) unsign ...
- python代码执行SQL文件(逐句执行)
一.简介 关于Python如何连接数据库并执行SQL语句,几乎所有的Python教程都会讲,教程里基本只介绍了执行单条SQL语句的方法,但是实际生产过程中可不只是执行一两条语句,动辄几十条甚至上百条的 ...
- 开源低代码平台开发实践二:从 0 构建一个基于 ER 图的低代码后端
前后端分离了! 第一次知道这个事情的时候,内心是困惑的. 前端都出去搞 SPA,SEO 们同意吗? 后来,SSR 来了. 他说:"SEO 们同意了!" 任何人的反对,都没用了,时代 ...
- JDBC 复习4 批量执行SQL
1使用jdbc进行批量执行SQL在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. package dbe ...
- 基于低代码平台(Low Code Platform)开发中小企业信息化项目
前言:中小企业信息化需求强烈,对于开发中小企业信息化项目的软件工作和程序员来说,如何根据中小企业的特点,快速理解其信息化项目的需求并及时交付项目,是一个值得关注和研讨的话题. 最近几年来,随着全球经济 ...
- C#和Java中执行SQL文件脚本的代码(非常有用)
原文:C#和Java中执行SQL文件脚本的代码(非常有用) 我们在做程序的时候有事后会涉及到利用sql文件 直接执行,可是在sql文件中有很多注释,我们要一句一句的执行首先必须的得把sql文件解析 去 ...
- kettle用mysql创建资源库执行sql代码报错
一.原因: sql语句里边使用 'Y' 'N' 给boolean类型的赋值产生sql失败 二.解决方法:将insert语句中‘Y’或‘N’ 改成TRUE或FALSE即可,共两张表3个地方 ...
- PHP mysqli 增强 批量执行sql 语句的实现代码
本篇文章介绍了,在PHP中 mysqli 增强 批量执行sql 语句的实现代码.需要的朋友参考下. mysqli 增强-批量执行sql 语句 <?php //mysqli 增强-批量执行sql ...
随机推荐
- Menci的序列
题目大意 一个长度为n的字符串s,只包含+和×. 选出一个子序列,然后你有一个ret,初始为0,按顺序扫你选出的这个子序列. 如果碰到的是+,ret+1,否则ret*2. 最大化ret%2^k. 首先 ...
- Druid 查询超时配置的探究 → DataSource 和 JdbcTemplate 的 queryTimeout 到底谁生效?
开心一刻 昨晚跟我妈语音 妈:我年纪有点大了,想抱孩子了 我:妈,我都多大了,你还想抱我? 妈:我想抱小孩,谁乐意抱你呀! 我:刚好小区有人想找月嫂,要不我帮你联系下? 妈:你给我滚 然后她直接把语音 ...
- Dubbo源码(一) - SPI使用
为什么学SPI Dubbo 的可扩展性是基于 SPI 去实现的,而且Dubbo所有的组件都是通过 SPI 机制加载. 什么是SPI SPI 全称为 (Service Provider Interfac ...
- 使用jmh框架进行benchmark测试
性能问题 最近在跑flink社区1.15版本使用json_value函数时,发现其性能很差,通过jstack查看堆栈经常在执行以下堆栈 可以看到这里的逻辑是在等锁,查看jsonpath的LRUCach ...
- 【PHP库】phpseclib - sftp远程文件操作
需求场景说明 对接的三方商家需要进行文件传输,并且对方提供的方式是 sftp 的服务器账号,我们需根据他们提供的目录进行下载和上传指定文件. 安装 composer require phpseclib ...
- Luogu2455 [SDOI2006]线性方程组 (高斯消元)
模板特殊情况没exit(0) $\longrightarrow$60 了一下午 //#include <iostream> #include <cstdio> #include ...
- 基于 .NET 6 的轻量级 Webapi 框架 FastEndpoints
大家好,我是等天黑. FastEndpoints 是一个基于 .NET 6 开发的开源 webapi 框架,它可以很好地替代 .NET Minimal APIs 和 MVC ,专门为开发效率而生,带来 ...
- MySQL索引知识点&面试常见问题
来源:BiggerBoy 作者:北哥 原文链接:https://mp.weixin.qq.com/s/fucHvdRK5wRrDfBOo6IBGw 大家好我是北哥,今天整理了MySQL索引相关的知识点 ...
- Android配置OpenCV C++开发环境
网上的OpenCV配置环境大部分都不能正常配置成功,不是编译时报找不到so,就是运行找不到so.本文是我试了不少坑才找到的配置方法.其原理是让AndroidStudio自己根据mk文件自动配置. 1. ...
- Html飞机大战(二):面向对象绘制背景
好家伙, 我们为了后续工作的顺利进行,我试着把每一个模块封装为对象 但冻手之前还是要构思一下 我们把天空封装成一个类: 1.来搞一手简单的对象分析: 属性方面的都好理解 来说明一下方法: (1) p ...