如何通過執行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 學生表.姓名[email protected]學生名 and 課程表.課程名 [email protected]課程名;將執行SQL結果,也就是返回值寫到變量SQL數組中。由於執行SQL命令返回的結果是一個json對象數組,所以需要使用循環命令去取得數組中的每個Json對象,再去取值即可。這裏示例中當確定了姓名和課程名之後,分數就確定了,也就是SQL查詢的結果中只有一條記錄,所以循環第一次就可以使用返回命令將分數的值返回出來。

在頁面中的按鈕再使用調用服務端命令,調用構建好的SQL命令。學生名和課程名選擇設計好的文本框,將返回值返回到頁面中的分數。這樣就實現了這個需求了。

我們可以看一下執行效果,學生名輸入張三,課程名輸入語文,點擊查詢,分數便顯示88。

這樣,這個需求在低代碼中就可以通過執行SQL實現了。我們來換一下需求,改爲輸入一個學生名查詢出這個學生全部課程的成績。還是以活字格爲例,我們只需對上面的一些步驟做更改即可。
首先,設置頁面的步驟中,將課程名和課程名後的文本框刪除掉,分數區域改爲設置一個表格,表格中有課程列和分數列。

服務端命令中刪除課程名參數,服務端命令中的執行SQL命令也刪除課程名參數,修改SQL語句如下SELECT 分數表、分數、課程表、課程名 FROM、分數表 join 課程表 on 分數表、課程號 = 課程表、課程號 join 學生表 on 分數表、學號 = 學生表、學號 where 學生表、姓名[email protected]學生名,直接將查詢的數組結果返回出去。

在前端調用時,將調用服務端命令的結果保存在SQL數組變量中,然後直接使用導入Json數據到表格命令將json對象數組導入到表格。

可以看到,在瀏覽器中文本框輸入張三,點擊查詢,即可查詢出張三全部的課程和分數。由此可見,通過執行SQL可以大大的提升低代碼項目的開發效率,在需求變化是也能很高速的通過修改SQL語句和低代碼工程實現更改後的需求。

當然,這裏只舉了兩個簡單的例子來爲大家展示如何通過執行SQL爲低代碼項目提速,一些更復雜的需求如編寫和調用存儲過程,創建臨時表等,都是可以通過執行SQL在低代碼項目中實現的。大家如果感興趣得話,可以找找相關的低代碼產品來更詳細的瞭解一下。

如果想了解更多地低代碼技術知識訪問:https://help.grapecity.com.cn/display/lowcode

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章