JBPM学习(三):管理流程定义,java集合面试题

@Test

public void findAll() {

// 查询

List list = processEngine.getRepositoryService()//

.createProcessDefinitionQuery()//

.orderAsc(ProcessDefinitionQuery.PROPERTY_KEY)//排序条件

//.count()查询出总数量

//.page(0, 100)分页,取出前100条记录

.list();

// 显示

for (ProcessDefinition pd : list) {

System.out.println(“id=” + pd.getId()// 格式为:{key}-{version}

  • “, name=” + pd.getName()// 流程定义文件(.jpdl.xml)中根元素的name属性的值

  • “, key=” + pd.getKey()// 流程定义文件(.jpdl.xml)中根元素的key属性的值,可以不写,不写就是name属性的值

  • “, version=” + pd.getVersion()// 流程定义文件(.jpdl.xml)中根元素的version属性的值,可以不写,不写就会自增(key相同时,版本加1)

  • “, deploymentId=” + pd.getDeploymentId()); // 本流程定义对应的 .jpdl.xml 文件所属的Deployment对象的id

}

}

b) 查询所有最新版本的流程定义

@Test

public void findAllLatestVersions() {

// 1,查询所有流程定义,按Version升序排列,这样所有最大的版本就都排到最后了

List allList = processEngine.getRepositoryService()//

.createProcessDefinitionQuery()//

.orderAsc(ProcessDefinitionQuery.PROPERTY_VERSION)//

// .processDefinitionName(“test”)//

// .orderAsc(ProcessDefinitionQuery.PROPERTY_KEY)//

// .orderDesc(ProcessDefinitionQuery.PROPERTY_KEY)//

// .uniqueResult()

// .count()

// .page(firstResult, maxResults)

.list();

// 2,过滤出所需的最新版本的流程定义

Map<String, ProcessDefinition> map = new HashMap<String, ProcessDefinition>();

for (ProcessDefinition pd : allList) {

map.put(pd.getKey(), pd);//不同的key会保存最新的版本(上面已经按版本升序排列)

}

// 显示

for (ProcessDefinition pd : map.values()) {

System.out.println(“id=” + pd.getId()// 格式为:{key}-{version}

  • “, name=” + pd.getName()// 流程定义文件(.jpdl.xml)中根元素的name属性的值

  • “, key=” + pd.getKey()// 流程定义文件(.jpdl.xml)中根元素的key属性的值,可以不写,不写就是name属性的值

  • “, version=” + pd.getVersion()// 流程定义文件(.jpdl.xml)中根元素的version属性的值,可以不写,不写就会自增(key相同时,版本加1)

  • “, deploymentId=” + pd.getDeploymentId()); // 本流程定义对应的 .jpdl.xml 文件所属的Deployment对象的id

}

}

3.删除流程定义(其实是删除Deployment)

a) 删除某个Deployment

@Test

public void deleteById() {

String deploymentId = “1”;

// // 删除某Deployment,如果有关联的执行信息,就抛异常

// processEngine.getRepositoryService().deleteDeployment(deploymentId);

// 删除某Deployment,如果有关联的执行信息,就级联删除

processEngine.getRepositoryService().deleteDeploymentCascade(deploymentId);

}

b) 删除指定key的所有版本的流程定义

@Test

public void deleteByKey() {

// 1,查询出指定key的所有版本的流程定义

List list = processEngine.getRepositoryService()//

.createProcessDefinitionQuery()//

.processDefinitionKey(“helloworld”)//

.list();

// 2,循环删除

for (ProcessDefinition pd : list) {

processEngine.getRepositoryService().deleteDeploymentCascade(pd.getDeploymentId());

}

}

4.获取部署时的某文件的资源(查看流程图)

a) 查看流程图

@Test

public void getResourceFromDeployment() throws Exception {

String deploymentId = “50001”;

String resourceName = “helloworld/test.png”; // 指定的是 jbpm4_lob 表中的name_列的值

// 获取某Deployment中所有文件资源的名称

Set names = processEngine.getRepositoryService().getResourceNames(deploymentId);

for (String name : names) {

System.out.println(name);

}

// 获取某Deployment中指定名称的资源

InputStream in = processEngine.getRepositoryService().getResourceAsStream(deploymentId, resourceName);

// 保存到"c:/"中

OutputStream out = new FileOutputStream(“c:/process.png”);

for (int b = -1; (b = in.read()) != -1;) {

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

读者福利

由于篇幅过长,就不展示所有面试题了,感兴趣的小伙伴

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

更多笔记分享

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」
UeS-1711922258576)]

读者福利

由于篇幅过长,就不展示所有面试题了,感兴趣的小伙伴

[外链图片转存中…(img-OHMZ2L67-1711922258577)]

[外链图片转存中…(img-1MYYeFtO-1711922258577)]

[外链图片转存中…(img-t1rkfr0p-1711922258577)]

更多笔记分享

[外链图片转存中…(img-4hPlbetQ-1711922258578)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/784425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flask-(数据连接池的使用,定制命令,信号的使用,表关系的建立和查询)

文章目录 连接池实例flask定制命令flask 缓存的使用flask信号的使用sqlalchemy原生操作sqlalchemy操作表flask orm操作表一对多的增加和跨表查询 &#xff08;一对一只需要关联字段加上 ,uniqueTrue&#xff09;多对多关系的增加和查询多对多基本的增删改查 连接池 import pymy…

axios封装,请求取消和重试,请求头公共参数传递

axios本身功能已经很强大了&#xff0c;封装也无需过度&#xff0c;只要能满足自己项目的需求即可。 常规axios封装&#xff0c;只需要设置&#xff1a; 实现请求拦截实现响应拦截常见错误信息处理请求头设置 import axios from axios;// 创建axios实例 const service axios…

Qt主窗口 之:状态栏(QStatusBar)

成员函数 原文链接&#xff1a;https://blog.csdn.net/techenliu/article/details/133687883 1&#xff09;void setText(const QString &text) 设置状态栏的文本。参数text是要显示的消息文本。 2&#xff09;QString text() const 返回当前状态栏的文本。 3&#xff0…

【漏洞复现】WordPress Plugin LearnDash LMS 敏感信息暴漏

漏洞描述 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 WordPress Plugin LearnDash LMS 4.10.2及之前版本存在安全漏洞&#x…

The Morning Star

题目描述 本题有多组数据。 给定 n 个点&#xff0c;第 i 个点的坐标为 xi​&#xff0c;yi​。 现需要将星星和指南针放在任意两个点上&#xff0c;使得星星在指南针的正北、正东、正西、正南、正东南、正东北、正西南或正西北方向&#xff0c;求一共几种放法。&#xff08…

遥感动态监测技术

很多人对动态监测和动态检测两个名词有疑惑。我们可以这样理解&#xff0c;动态监测是一个广义的名词&#xff0c;泛指数据预处理、变化信息发现与提取、变化信息挖掘与应用等&#xff0c;以对整个流程的叙述。动态检测是一个狭义的名词&#xff0c;主要指部分数据预处理、变化…

C++list的模拟实现

为了实现list&#xff0c;我们需要实现三个类 一、List的节点类 template<class T> struct ListNode {ListNode(const T& val T()):_pPre(nullptr),_pNext(nullptr),_val(val){}ListNode<T>* _pPre;ListNode<T>* _pNext;T _val; }; 二、List的迭代器…

JAVAEE之CSS

1.CSS 是什么&#xff1f; 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离. 1.1 CSS和HTML的区别 CSS&#xff0c;全称为层叠样式表(Cascading Style Sheets)&#xff0c;是…

RocketMQ(版本4.9.4)+RocketMQ_Dashbord环境搭建(生产者、消费者的前置环境搭建)

一、官方网站下载 RocketMQ源码包 https://rocketmq.apache.org/zh/docs/4.x/introduction/02quickstart 二、把rocketMQ上传到Linux环境下解压&#xff0c;编译&#xff0c;执行以下命令&#xff08;需要提前装jdk和maven并配置好环境变量&#xff09; unzip rocketmq-all-4…

学习java第二十九天

如何通过注解配置文件&#xff1f; Configuration 用于指定当前类是一个 spring 配置类&#xff0c;当创建容器时会从该类上加载注解&#xff0c;value 属性用于指定配置类的字节码。 ComponentScan 用于指定 Spring 在初始化容器时要扫描的包。basePackages 属性用于指定要扫…

AtCoder Beginner Contest 347 (ABCDEF题)视频讲解

A - Divisible Problem Statement You are given positive integers N N N and K K K, and a sequence of length N N N, A ( A 1 , A 2 , … , A N ) A(A_1,A_2,\ldots,A_N) A(A1​,A2​,…,AN​). Extract all elements of A A A that are multiples of K K K, divi…

计算机的组成原理

1.简单常识介绍 1.1认识一下计算机的真实相貌 1.2怎么通过电信号传二进制 工作原理 cpu的针脚也就跟我们的手指一样用来接收高低电频&#xff0c;来判断2进制数据 cpu和数据交互的原理 2.计算机系统 软件介绍 硬件的发展历史 电子管时代 晶体管时代 中小规模集成电路 大规模…

C#(winform) 调用MATLAB函数

测试环境 VisualStudio2022 / .NET Framework 4.7.2 Matlab2021b 参考&#xff1a;C# Matlab 相互调用 Matlab 1、编写Matlab函数 可以没有任何参数单纯定义matlab处理的函数&#xff0c;输出的数据都存在TXT中用以后期读取数据 function [result,m,n] TEST(list) % 计算…

Uibot6.0 (RPA财务机器人师资培训第6天 )发票验真机器人案例实战

类似于小北的这篇博客&#xff1a;Uibot (RPA设计软件&#xff09;Mage AI智能识别&#xff08;发票识别&#xff09;———课前材料五_uibot 添加mageai-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/135591297?spm1001.2014.3001.5501训练网站&#xff1a;泓江…

Vue3之defineModel

随着vue3.4版本的发布&#xff0c;defineModel也正式转正了。它可以简化实现父子组件之间的双向绑定&#xff0c;也是目前官方推荐的双向绑定实现方式。 1.vue3.4的实现双向绑定 大家应该都知道v-model只是一个语法糖&#xff0c;实际就是给组件定义了modelValue属性和监听up…

Linux终端命令工具screen入门

screen是linux里可以进行后台保持Terminal交互的工具&#xff0c;日常工作需要多个会话窗口或者恢复窗口时screen很有帮助 screen的功能大体有三个&#xff1a; 会话恢复&#xff1a;**只要Screen本身没有终止&#xff0c;在其内部运行的会话都可以恢复。**这一点对于远程登录的…

电流镜恒流源简介

目录 工作原理 设计要点 应用场景 初步想法&#xff0c;为参加活动先占贴&#xff08;带家人出去玩没时间搞~~&#xff09;&#xff0c;后面优化 电流镜恒流源是一种利用电流镜原理设计的电路&#xff0c;它可以提供恒定的电流输出&#xff0c;不受负载变化或电源电压波动的…

使用Docker搭建SABnzbd

SABnzbd是一款开源的Usenet下载客户端&#xff0c;它能够高效地从Usenet服务器下载NZB文件或者通过NNTP协议下载文章。SABnzbd支持多个同时下载的任务&#xff0c;能够自动处理下载完成后的文件&#xff0c;如解压缩、分类存储等&#xff0c;并且具有Web界面&#xff0c;方便用…

Linux:ip协议

文章目录 ip协议基本认识ip协议的报头 ip协议基本认识 前面对于TCP的内容已经基本结束了&#xff0c;那么这也就意味着在传输层也已经结束了&#xff0c;那么下一步要进入的是的是网络层&#xff0c;网络层中也有很多种协议&#xff0c;这里主要进行解析的是ip协议 前面的TCP…

迅饶科技 X2Modbus 网关 GetUser 信息泄露漏洞复现

0x01 产品简介 X2Modbus是上海迅饶自动化科技有限公司Q开发的一款功能很强大的协议转换网关, 这里的X代表各家不同的通信协议, 2是T0的谐音表示转换, Modbus就是最终支持的标准协议是Modbus协议。用户可以根据现场设备的通信协议进行配置,转成标准的Modbus协议。在PC端仿真…