Mendix 中的外部数据支持 - 集成数据、外部数据库、Excel、CSV 格式 | Mendix 评估指南

Skip navigation

External Data

如何在我的应用程序中存储和使用集成数据?

使用通过集成(例如,web 服务或 REST 服务)获取的数据时,有两种存储和使用数据的选项,如下所述。

  • 存储在持久性实体中

    此选项意味着数据将存储在应用程序的数据库中。如果希望在较长时间内(如数小时或数天)使用这些数据,或者希望与其他用户共享这些数据,这是一个很好的办法。抑或您所依赖的服务速度缓慢或经常不可用,则也需要存储集成数据。

  • 通过非持久实体存储在内存中

    此选项意味着只有检索此数据的用户会话才能在其会话存在期间访问这些数据。如果仅在短时间内需要数据并且希望确保数据始终与数据所有者(即提供数据的服务)保持同步,此选项是一种有效方法。

    Mendix 的导出和导入映射同时支持持久性和非持久性实体。

Mendix 如何支持对外部 SQL 数据库的直接访问?

Mendix Marketplace 中提供数据库连接器功能,可在您所用的任何数据库上运行 SQL 操作。数据库连接器支持查询以及更新、删除和存储过程调用等操作。

数据库连接器可与支持 JDBC 的关系数据库配合使用。某些 NoSQL 数据库可通过 JDBC 支持 SQL,因此对于这些 NoSQL 数据库,您也可以使用数据库连接器。大多数 NoSQL 数据库还支持通过 REST API 进行连接。如果是这种情况,您可以使用 Mendix 的广泛 REST 支持在这些数据库中使用数据。

对于 Oracle 数据库,Mendix Marketplace 提供 Oracle Connector (Beta)。该数据库连接器版本支持 Oracle 专用的功能,例如 PL/SQLRef Cursors用户定义的 SQL 类型。该模块对于 Oracle Forms 和 Oracle Designer 等应用程序中所用的许多 Oracle 数据库非常有用,其中的大多数数据访问由表 API(使用 PL/SQL 包实现)进行处理。

如何导入和导出 Excel 等来源数据?

即时可用的 Data Grid 小组件可以将数据网格中显示的数据导出成 Excel 格式。想要以 Excel 格式批量导入或导出数据,您可以使用以下两个 Mendix Marketplace 模块:

  • Excel 导出器 – 借由此模块,您可以为待导入的不同 Excel 工作表定义相应模板。模板中定义应通过工作表提供哪些数据以及通过何种方式将这些数据映射到/转换为 Mendix 应用程序中定义的实体。这些模板可以重复使用,但需要定期上传同一工作表的更新数据。
  • Excel 导出器 – 借由此模块,您可以定义相应模板,确定从 Mendix 应用程序向 Excel 工作表导出数据的方式。使用这些模板,您可以定期在格式完全相同的 Excel 工作表中导出数据。有关更多信息,请参见 Mendix Studio Pro 操作方法中的如何使用 Excel 导出器

如何导入和导出 CSV 格式数据?

Mendix Marketplace 包含多个模块,可以帮助您导入或导出 CSV 格式的数据:

  • Excel 导出 – 此模块还支持导出为 CSV 格式。
  • 定长和定界文件导入 – 借由此模块,您可以导入配置(仅运行时)中的平面文件和定界文件 (CSV),省去了您的 Java 工作。
  • 定长和定界文件导出 – 该模块能够导出定长和定界文件 (CSV),处理所有 Java 编码,让您轻松导出微流中的数据。
  • 简易 CSV 导出器 – 此模块用于从微流导出为 CSV 格式。
  • CSV 服务 – 此模块是在 Mendix 应用程序中输入/输出 Excel 数据的最简单快速的方法。它可为应用程序中的每个实体创建 REST 端点,以便您采用逗号分隔值格式上传和下载数据。它还提供了用于在微流中导入和导出 CSV 的微流操作。

如何导入和导出定长与定界文件?

上述部分模块支持定长和定界文件。

如果找不到支持特定长度格式的模块,可以使用 Mendix 连接器套件创建自定义微流操作以处理导入和导出。有关连接器套件和 Mendix Java API 微流扩展的更多信息,请参见可扩展性中的如何扩展 Mendix 平台的功能?

如何进行批量导出和导入?

您可以采用多种方式从 Mendix 应用程序中批量导出和导入数据:

  • 自定义构建的服务 – 例如使用 Web 服务或 REST 服务。这种方法的好处在于,您能够调整数据并验证其是否符合您的业务规则。
  • 备份与还原 – 您可以使用自定义 (SQL) 脚本在 Mendix 开发数据库中填充所需的数据。完成后,您将创建此数据库的备份并将其还原到所需的目标数据库中。
  • 源数据库 – 在新的空数据库上启动运行时的时候,可以指定该数据库是否需要使用另一数据库的数据来进行初始化。

如果要在两个环境之间创建实时批量同步,则可以使用实体事件侦听器。这使您可以为每个对象事件运行自定义 Java 逻辑(例如,在数据库中的数据更改的情况下)。在此自定义处理程序中,您可以提供逻辑以将数据更改复制到另一个应用程序中。