文件首頁
X DevAPI 使用者指南
下載本手冊
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


X DevAPI 使用者指南  /  CRUD 操作  /  MySQL Shell 自動程式碼執行

3.5 MySQL Shell 自動程式碼執行

當您在完全指定要使用語法的程式語言中使用 X DevAPI 時,例如,當透過 X DevAPI 會話執行 SQL 語句或使用任何 CRUD 操作時,只有在呼叫 execute() 函數時才會執行實際操作。例如

var result = mySession.sql('show databases').execute()
var result2 = myColl.find().execute()

上述 execute() 函數的呼叫會導致執行該操作並傳回 Result 物件。然後,將傳回的 Result 物件指派給變數,而該指派是最後執行的操作,不會傳回任何資料。此類操作也可以傳回 Result 物件,該物件用於處理從操作傳回的資訊。

或者,MySQL Shell 提供以下實用功能,使您可以更輕鬆地以互動方式使用 X DevAPI

  • 自動執行 CRUD 和 SQL 操作。

  • 自動處理結果。

為了實現此功能,MySQL Shell 會在您每次輸入語句時監控上次執行操作的結果。這些功能的組合使得使用 MySQL Shell 互動模式成為程式碼原型設計的理想選擇,因為操作會立即執行,並且會顯示其結果,而無需任何額外的程式碼。如需更多資訊,請參閱MySQL Shell 8.4.0

自動程式碼執行

如果 MySQL Shell 偵測到已傳回準備執行的 CRUD 操作,則會自動呼叫 execute() 函數。在 MySQL Shell 中重複上述範例並移除指派操作,顯示該操作會自動執行。

mysql-js> mySession.sql('show databases')
mysql-js> myColl.find()

MySQL Shell 會執行 SQL 操作,如上所述,一旦執行此操作,便會傳回 Result 物件。

自動結果處理

如果 MySQL Shell 偵測到將要傳回 Result 物件,則會自動處理該物件,並以最佳格式列印結果資料。Result 物件有不同的類型,而且不同類型之間的格式會有所變化。

mysql-js> db.countryInfo.find().limit(1)
[

    {

        "GNP": 828,

        "IndepYear": null,

        "Name": "Aruba",

        "_id": "ABW",

        "demographics": {

            "LifeExpectancy": 78.4000015258789,

            "Population": 103000

        },

        "geography": {

            "Continent": "North America",

            "Region": "Caribbean",

            "SurfaceArea": 193

        },

        "government": {

            "GovernmentForm": "Nonmetropolitan Territory of The Netherlands",

            "HeadOfState": "Beatrix"

        }

    }

]

1 document in set (0.00 sec)