此文demo地址:https://github.com/mrgaogang/mendix
日常开发中我们难免会有一些情况是无法使用微流实现的,此时需要我们使用Java原生的能力:JavaAction;此文主要介绍如何JavaAction对数据库的数据进行增删改查和使用action执行微流。
目录:
数据添加;
数据删除;
数据修改;
数据查询;
使用Action执行微流;
JavaAction使用注意事项
JavaAction使用有几个注意点:
executeAction()是mendix默认调用的方法,且我们只能在//BEGIN 和//END之间编写Java代码。
如果你有大量的代码需要编写请在类的末尾以下两个分隔符之间编写
一、数据的添加
数据的创建可以使用Core.instantiate创建一个空的对象,也可直接new 出空对象;数据的提交可以使用obj.commit()可以使用Core.commit()
二、数据的删除
数据的删除可以使用obj.delete()也可使用Core.delete()
三、数据的修改
数据的修改和数据的提交类似,只是在action将数据修改后重新提交。
四、查询数据
数据的查询主要使用以下几种方式
Core.retrieveXPathQuery()
Core.retrieveXPathQueryAggregate()
Core.retrieveId()
Core.retrieveIdAsync()
其中XPath查询数据需要在前方加上// ;但是在mendix客户端编写xpath(比如在datagrid查询数据使用xpath)时 不需要加上//。
//Demo.User 检索所有用户。
//Demo.User[UserName='mrgao'] 检索名为'mrgao'的所有用户。
avg(//Demo.User[Age >10 ]/Age) 检索所有用户年龄大于10岁的 年龄平均数。
其中XPath可用的函数有: avg、count、max、min、sum、contains、starts-with、ends-with、not、true、false
五、执行微流
微流的执行科分为同步执行execute()和异步执行executeAsyn();此例子主要以同步执行为例;
微流执行时参数的传递主要使用Map的方式,且Key必须要和参数入参名称相同;
如果传入的是Object类型,则需要转化成mendixobject;
微流执行完成可获取到其返回的参数;
如果还想了解更多相关Core的知识,请访问官方API :Mendix官方CoreAPI 以及IMendixObject的API :IMendixObject官方API
领取专属 10元无门槛券
私享最新 技术干货