Mendix 8.10——让生活更美好| Mendix

跳到主要内容

Mendix 8.10 – 让生活更美好

Mendix 8.10——让生活更美好

At Mendix 我们始终致力于让您的生活更美好。在本月的产品发布中,我们提供了新功能,例如数据库连接器,可无缝集成外部数据、增强离线优先应用中的同步控制、更好的可访问性选项以及强大的微流表达式等等。我们确信这些更新将使开发人员的生活更轻松,最终用户更满意。

Studio专业版

数据库连接器:将后端数据带给前端用户

JDBC 是连接所有类型数据库的事实标准。借助此版本,您现在可以使用数据库连接器轻松扩展应用程序,其中的数据存储在几乎任何类型的数据库中。

数据库连接器 允许您使用传统的 SQL 查询来检索数据:

带语法高亮的 SQL 查询
带语法高亮的 SQL 查询

结果可以轻松映射回您的应用程序:

现在可以从实体中选择结果对象类型

查询子句可以参数化以获得额外的灵活性:

语句中的参数由其类型填充,Studio Pro 将检查您是否传递了正确的值

您可以在微流工具箱中找到两个新活动: Execute parameterized query 以及 Execute parameterized statement。这些可以在现有的两个活动旁边找到。不必担心立即迁移到新活动,您可以按照自己的节奏进行。

新的参数化活动

这些改进从 Studio Pro 8.6 开始提供。获取 数据库连接器 从 App Store 下载 v3.x 以利用此新功能!要了解有关源模型的更多信息,请访问我们的 GitHub存储库.

参数化字符串模板

使用直接字符串连接构建大规模查询很快就会变得繁琐,有时甚至不安全。参数化查询可以解决这些问题。在此版本中,我们引入了 字符串模板 参数并添加类型信息,以便模块开发人员可以创建参数化查询。

如果没有字符串模板参数,创建基于查询的模块会很困难,通常,正确构建查询的负担将落在模块的使用者身上。在下面的示例中,旧的数据库连接器用于对外部数据库执行语句。开发人员必须将查询传递到完整的 JDBC URL 中,并且必须在调用 Execute Statement 行动:

执行语句要求开发人员在单个字符串中提供完整的查询

这对于简单查询来说很方便。但是高级查询很快就会变得难以维护,因为它无法轻松格式化,也没有语法高亮之类的编辑器服务。确保查询安全的负担部分落在了开发人员身上。事实上,在某些情况下,基于未经检查的用户输入的表达式需要手动清理。

有了字符串模板参数,这已经成为过去。开发人员可以编写完全安全的参数化 SQL 语句。在 Mendix Studio Pro,如果向 Java 操作添加字符串模板参数,则此操作的调用者将获得模板输入而不是常规字符串输入。以下是数据库连接器的一个示例,其中使用此新功能对外部数据库执行参数化更新语句:

带有 SQL 语法高亮显示的模板查询

数据库连接器使用 JDBC 的 PreparedStatement,这意味着传入的任何表达式都会经过类型检查和转义。

那么,数据库连接器是如何实现这一点的呢?在 Studio Pro 中,模板包含 Mendix-style 索引模板参数,即。 {1} 以及 {2}。在 Java 实现中,这需要映射到 JDBC PreparedStatement. 占位符,例如 {1},需要替换为 JDBC 的 ?。使用以下行,可以将占位符替换为 IStringTemplate 方法:

String updatedTemplate = template.replacePlaceholders((parameter, index) -> "?");

从这个更新的模板中,可以创建准备好的语句:

PreparedStatement pstmt = con.prepareStatement(updatedTemplate);

模板参数及其类型和值的列表也由 IStringTemplate. 每个模板参数的类型信息和值可用于将正确索引处的参数添加到 PreparedStatement:

List templateParameters = stringTemplate.getParameters();
for (int i = 0; i < templateParameters.size(); i++) {
ITemplateParameter parameter = templateParameters.get(i);
switch (parameter.getParameterType()) {
case INTEGER:
pstmt.setLong(i + 1, (long) parameter.getValue());
break;
case STRING:
pstmt.setString(i + 1, (String)parameter.getValue());
break;
case BOOLEAN:
pstmt.setBoolean(i + 1, (Boolean)parameter.getValue());
break;
case DECIMAL:
pstmt.setBigDecimal(i + 1, (BigDecimal)parameter.getValue());
break;
case DATETIME:
pstmt.setDate(i + 1, convertDate(parameter.getValue()));
break;
}
}

您可以使用字符串模板为数据库连接器或类似模块构建用户友好的界面。为任何类型的模块(包括您自己创建的模块)创建使用查询或类似查询构造的易于使用的活动。为了获得灵感,请查看 GitHub 上的数据库连接器.

电话

同步到设备:仅同步选定的对象

每当离线优先应用同步时,离线数据库都会被清除并从头开始重新填充,以保证数据完整性。然而,这可能会导致不必要的开销,例如,一组不经常更改的数据,因此不需要频繁同步。

在此版本中,我们添加了一个名为 sync-to-device 的微流活动。通过此活动,开发人员可以仅将所需的对象通过微流传递到设备。这些对象将添加到本地数据库,而不会同步其他数据,因此这是一个非常高效的选项。如果您想要同步多个实体的对象,可以多次调用此活动。

同步到设备,用于同步今天的新闻

另一个很好的例子是,当有大量很少更改的静态数据(例如 10k+ 个对象)时,例如产品列表。在这种情况下,您可以在批量下载所有对象时在设备上显示进度屏幕。一旦服务器上的数据发生变化,您就可以仅同步已更改的对象 - 使同步到设备非常灵活和高效。

发行说明 获取更多信息。

网上

通过新的 Web Nanoflow 活动提高了可访问性

构建可访问的应用程序对于使您的应用程序更加用户友好是必不可少的。在此版本中,我们进行了几项更新以提高可访问性。您可以在 发行说明 或检查出来 评估指南 了解有关无障碍支持的更多信息。

我们还发布了四项新的网页版 nanoflow 活动。这些活动通过提供对焦点元素的更多控制来改善用户体验。

设置焦点:直接将焦点设置到某个元素上
关注下一步:将焦点设置到下一个可能的元素
关注上一个:将焦点设置到上一个可能的元素
滚动到:页面上的元素

新的 Web 操作模块

您可以在应用商店的新网页操作模块中下载这些活动 开始.

平台

简化的故事概览页面

今年早些时候,开发者门户中的故事概览页面经历了一次巨大的变革。虽然自 2 月份以来每个人都可以切换到新外观,但现在它已成为默认外观。非常感谢通过 Mendix 社区松弛.

在本次更新中,我们进一步简化了此页面,使其更加方便用户使用。现在,您只需使用页面顶部的搜索框即可找到合适的故事。它会同时查找描述、标签和状态中的故事。

简化搜索

通过单击“新故事”页面上的“创建另一个故事”按钮或使用键盘快捷键 Shift+Enter 来节省时间。

创建另一个故事

除了这些变化之外,我们还对编辑故事、在概览页面上加载故事、进入活跃冲刺时的故事 API 等方面进行了性能改进。

愉悦者

微流表达式中的关联

虽然您始终可以在微流表达式中使用关联,但用例有限。您可以检查关联是否为空,将其与另一个对象进行比较,或在赋值中使用它。但是,当您需要超越这一点时,例如检查属性的值,您总是必须 取回 首先是关联对象。好了,现在不再是这样了!

在此版本中,我们让关联使用变得更加简单。现在,您可以在所有微流表达式中直接跟踪关联,例如在决策和设置值时。只需编写 $variable/Module.Association/Module.TargetEntity/Attribute 获取引用对象的属性。

但您不必就此止步——您还可以跟踪两个或多个关联,并在使用专业化时检查关联的实体类型。

跟踪多个关联并检查类型

一致性错误和警告的视觉指示器

为了确保您的应用程序模型一致, Mendix 提供高级错误检查机制。每当您创建不完全正确的模型时,它都会提供语法和语义错误和警告。这些错误和警告显示在 错误窗格 Studio Pro 以列表形式呈现。

为了在您构建模型时提供更快的反馈,Studio Pro 现在可以在相关元素上方直观显示一致性错误和警告的数量。错误会显示红色指示符,警告会显示橙色指示符:

错误和警告的视觉指示器

此功能基于 主意 提交于 Mendix 创意论坛 作者:Axel Brink。感谢 Axel 的开发 Mendix 更轻松!

不断让生活更美好

要了解有关新功能和特性的更多信息,请查看 发行说明。和往常一样,下载最新版本的 Mendix Studio专业版 让生活更加美好。

选择你的语言