文档首页
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)