成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

支持無代碼的事務(wù)API

譯文
運(yùn)維 數(shù)據(jù)庫運(yùn)維
事務(wù)的目的是保護(hù)數(shù)據(jù)不會受到數(shù)據(jù)庫無法完成部分更新的影響。事務(wù)API現(xiàn)在可用于無代碼應(yīng)用程序。

[[436277]]

【51CTO.com快譯】事務(wù)的目的是保護(hù)數(shù)據(jù)不會受到數(shù)據(jù)庫無法完成部分更新的影響。事務(wù)API現(xiàn)在可用于無代碼應(yīng)用程序。

交易接口

使用事務(wù)API,數(shù)據(jù)庫可以執(zhí)行分組為單個事務(wù)的多個數(shù)據(jù)庫請求。當(dāng)這些分組數(shù)據(jù)庫操作中的任何一個失敗時,整個事務(wù)都會回滾——這意味著同一事務(wù)中的任何更改都將被取消。

到目前為止,事務(wù)API僅限于使用代碼構(gòu)建的后端用戶。而現(xiàn)在,API也可供無代碼開發(fā)人員使用。

以下描述了事務(wù)API的工作原理及其一些好處。然后,將提供一個以無代碼的事務(wù)API的示例。

事務(wù)的好處

那么,事務(wù)API可以做些什么?以下來看看其中的一些好處。

首先,如果任何操作失敗,整個事務(wù)將回滾——無需從代碼中執(zhí)行任何清理。換句話說,不會對數(shù)據(jù)庫進(jìn)行永久更改,如果操作失敗,則需要修復(fù)這些更改。

其次,從客戶端的角度來看,只有一個請求發(fā)送到服務(wù)器——執(zhí)行事務(wù)的請求。例如,假設(shè)一個事務(wù)執(zhí)行兩個操作:(1)在數(shù)據(jù)庫中保存一個對象;(2)在保存的對象和用查詢標(biāo)識的其他對象之間建立關(guān)系。使用事務(wù)API,客戶端應(yīng)用程序只向服務(wù)器發(fā)送一個請求。

第三,事務(wù)為數(shù)據(jù)庫提供一致性和參照完整性。換句話說,事務(wù)可以確保數(shù)據(jù)庫中沒有“臟數(shù)據(jù)”。這有助于保持客戶端代碼更清晰和數(shù)據(jù)一致。

事務(wù)API的工作原理

無后端事務(wù)依賴于以下概念:

  • 工作單元——是事務(wù)請求的整個有效負(fù)載,它將多個單獨(dú)的數(shù)據(jù)庫操作組合成一個對象中。添加到工作單元的所有操作都有一個序列號,并且將按照添加順序在服務(wù)器端執(zhí)行。一個工作單元本質(zhì)上代表一個事務(wù)。
  • 數(shù)據(jù)庫操作——在事務(wù)中執(zhí)行的單個操作。這可以是創(chuàng)建、檢索、更新、刪除和關(guān)系管理(創(chuàng)建、更新、刪除)操作。
  • 操作結(jié)果——表示單個數(shù)據(jù)庫操作結(jié)果的實體。一個操作的結(jié)果可以在其他后續(xù)操作中引用。

例如,“創(chuàng)建”操作返回一個結(jié)果,這個結(jié)果代表著保存在數(shù)據(jù)庫中的對象。可以在操作中引用該對象以設(shè)置對象的關(guān)系。或者,可以從操作結(jié)果中“提取”特定屬性的值,并將其用于同一事務(wù)中的其他操作。

下圖說明了這些相互關(guān)聯(lián)的概念:

工作單元API

無后端事務(wù)API的核心是一個名為UnitOfWork的請求。客戶端應(yīng)用程序使用它來組成事務(wù)。

組合事務(wù)意味著將各種數(shù)據(jù)庫操作添加到一個工作單元中。用于從數(shù)據(jù)庫中檢索對象的“查找”操作如上圖所示。通過使用一個操作的輸出/結(jié)果作為另一個操作的輸入,這些操作可以相互“鏈接”。例如,在下圖中,看到了一個“更新”操作的示例,其中包含引用事務(wù)中先前操作的選項。

當(dāng)服務(wù)器收到UnitOfWork請求時,它開始處理其操作。服務(wù)器在單個數(shù)據(jù)庫事務(wù)的場景中執(zhí)行所有操作。

如果所有的操作失敗,無后端將回滾所有更改,并將有關(guān)每個操作的結(jié)果信息返回給客戶端。但是,如果所有操作都成功,則提交整個數(shù)據(jù)庫事務(wù)。這意味著數(shù)據(jù)將在數(shù)據(jù)庫中完成更新。

事務(wù)隔離

使用后端事務(wù)API,可以為其事務(wù)配置隔離級別。隔離級別決定了無后端數(shù)據(jù)庫如何將某個事務(wù)與同時運(yùn)行的所有其他事務(wù)分開。

如果沒有任何隔離,一個事務(wù)可以修改另一個事務(wù)正在讀取的數(shù)據(jù),這樣做會造成數(shù)據(jù)不一致。隔離級別決定了其事務(wù)與其他事務(wù)的隔離程度。這是通過對事務(wù)中檢索到的數(shù)據(jù)應(yīng)用鎖定來實現(xiàn)的。不同隔離的級別意味著不同的鎖定機(jī)制,每個鎖定機(jī)制也會產(chǎn)生不同的數(shù)據(jù)讀取現(xiàn)象。

操作結(jié)果

事務(wù)API最強(qiáng)大的元素之一是能夠在同一事務(wù)內(nèi)的其他后續(xù)操作中使用操作結(jié)果。這是通過所有事務(wù)操作遵循的“協(xié)議”實現(xiàn)的:每個操作都可以有一個唯一的標(biāo)識符。

標(biāo)識符可以在另一個操作中使用,以引用使用其操作的結(jié)果。這允許產(chǎn)生“鏈接效應(yīng)”,其中數(shù)據(jù)來自一個操作,然后輸入到另一個操作中。例如下面的例子。該示例在數(shù)據(jù)庫中保存一個新對象,然后在創(chuàng)建的對象和另一個表中的對象之間建立關(guān)系。

將對象保存在數(shù)據(jù)庫中的操作為每個操作分配一個唯一的ID,然后在后續(xù)操作中使用這個ID來建立對象與其子對象之間的關(guān)系。

無代碼事務(wù)示例

可以通過以下無代碼事務(wù)來分解每個步驟中發(fā)生的事情。此無代碼塊用于存儲購買的詳細(xì)信息。以下介紹這個API調(diào)用的每一步。 

作為參考,本例中兩個表的表架構(gòu)如下所示。以下是這個API服務(wù)每個步驟的細(xì)分:

首先,在本例中,將創(chuàng)建一個名為TransactionsDemo的API服務(wù),其方法名稱為createObjectsSaveRelation。不必創(chuàng)建新的API服務(wù)來運(yùn)行本示例中的邏輯。其所有步驟幾乎都可以用于創(chuàng)建的任何無代碼邏輯。

接下來,創(chuàng)建一個變量myTx,并將其內(nèi)容設(shè)置為一個新的事務(wù)。事務(wù)的隔離設(shè)置為“可重復(fù)讀取”。

這是事務(wù)的“包裝器”。在這里,實現(xiàn)了組成名為myTx的事務(wù)(或UnitOfWork)的操作。需要注意的是,順序很重要。特別是如果操作依賴于同一事務(wù)中的另一個操作,則需要確保按正確的順序排列操作步驟以實現(xiàn)所需的結(jié)果。

作為事務(wù)中的第一個操作,執(zhí)行名為createOrderOp的“創(chuàng)建”操作。此操作在Order表中創(chuàng)建一個orderId=061821-CV1和amount=189.2的對象。

對于第二個操作,執(zhí)行“批量創(chuàng)建”操作并將其命名為createOderItemsOp。在這個操作中,創(chuàng)建了兩個數(shù)據(jù)對象——數(shù)量為10的紙巾和數(shù)量為20的浴室紙巾。這些項目被添加到表OrderItem中。

最后,執(zhí)行“SetRelation”操作將子數(shù)據(jù)對象連接到父數(shù)據(jù)對象。不需要為此操作命名(id)。對于父級可以訪問Order表。然后通過訪問createOrderOp操作的結(jié)果找到父對象。而正在創(chuàng)建關(guān)系的列稱為orderDetails。為了找到子選項,將再次訪問先前操作的結(jié)果。這次是createOrderItemsOp操作。

事務(wù)結(jié)果

這個API調(diào)用的結(jié)果將是:

無代碼示例表架構(gòu)

訂單表架構(gòu):

OrderItem表架構(gòu):

原文標(biāo)題:Transaction API Support for Codeless,作者:Chris Fanchi

【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2020-05-21 09:14:36

無代碼代碼開發(fā)

2024-05-10 09:31:22

務(wù)隔離級別Python

2023-09-11 15:40:43

鍵值存儲云服務(wù)

2021-09-16 15:59:07

無代碼無代碼技術(shù)

2023-09-25 09:31:25

云架構(gòu)無代碼開發(fā)

2023-08-29 15:14:32

2021-04-14 11:20:04

無代碼APPNo Code

2012-11-26 10:53:03

2012-02-01 09:09:53

JavaJava 8

2022-05-24 12:42:24

物聯(lián)網(wǎng)

2021-11-30 13:54:30

CIO低代碼無代碼

2022-06-14 14:18:46

架構(gòu)秒殺高并發(fā)

2019-11-26 09:47:50

代碼開發(fā)工具

2020-09-11 10:40:50

低代碼無代碼開發(fā)

2023-11-13 22:33:47

低代碼無代碼

2022-03-18 21:27:36

Python無代碼

2022-07-21 07:14:16

無代碼模式

2021-05-07 08:00:00

數(shù)據(jù)中心無服務(wù)器架構(gòu)

2023-05-29 13:56:00

JSReact

2010-03-19 11:12:23

Java Socket
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美性video 精品亚洲一区二区 | 免费国产一区二区 | 亚洲精品自拍 | 国产精品高潮呻吟久久 | 免费黄色大片 | 一级大片网站 | 中文字幕一区二区三区四区五区 | 中文字幕在线观看第一页 | 毛片区 | 人人性人人性碰国产 | 自拍视频国产 | 欧美视频 | 日本高清视频网站 | 欧美成人精品二区三区99精品 | 国产精品99久久久精品免费观看 | 欧美日韩一区在线观看 | 精品欧美一区二区三区久久久 | 91xxx在线观看 | 欧洲视频一区二区 | 久久99精品久久久水蜜桃 | 夜夜爽99久久国产综合精品女不卡 | 国产成人福利视频在线观看 | 欧美一区在线视频 | 日韩免费一区二区 | 精品一区二区三区视频在线观看 | 亚洲精品一区二三区不卡 | 国产精品美女www爽爽爽视频 | av香港经典三级级 在线 | 国外成人在线视频网站 | 久久精品国产一区二区三区 | 日韩视频精品在线 | 午夜精品网站 | 亚洲欧美日韩国产综合 | 99视频网站 | 亚洲精品电影网在线观看 | 免费一级做a爰片久久毛片潮喷 | 国产中文在线观看 | 羞羞网站在线观看 | 国产欧美精品一区二区色综合朱莉 | 亚洲精品电影 | 亚洲国产一区在线 |