Spring Boot+Activiti7入坑指南初階版

介紹 

Activiti 是一個輕量級工作流程和業務流程管理 (BPM) 平臺,面向業務人員、開發人員和系統管理員。其核心是一個超快且堅如磐石的 Java BPMN 2 流程引擎。它是開源的,并根據 Apache 許可證分發。Activiti 可以在任何 Java 應用程序、服務器、集群或云中運行。它與 Spring 完美集成,非常輕量級并且基于簡單的概念。
官網地址: Open Source Business Automation | Activiti
guithub地址: GitHub - Activiti/Activiti: Activiti is a light-weight workflow and Business Process Management (BPM) Platform targeted at business people, developers and system admins. Its core is a super-fast and rock-solid BPMN 2 process engine for Java. It's open-source and distributed under the Apache license. Activiti runs in any Java application, on a server, on a cluster or in the cloud. It integrates perfectly with Spring, it is extremely lightweight and based on simple concepts.Activiti is a light-weight workflow and Business Process Management (BPM) Platform targeted at business people, developers and system admins. Its core is a super-fast and rock-solid BPMN 2 process engine for Java. It's open-source and distributed under the Apache license. Activiti runs in any Java application, on a server, on a cluster or in the cloud. It integrates perfectly with Spring, it is extremely lightweight and based on simple concepts. - GitHub - Activiti/Activiti: Activiti is a light-weight workflow and Business Process Management (BPM) Platform targeted at business people, developers and system admins. Its core is a super-fast and rock-solid BPMN 2 process engine for Java. It's open-source and distributed under the Apache license. Activiti runs in any Java application, on a server, on a cluster or in the cloud. It integrates perfectly with Spring, it is extremely lightweight and based on simple concepts.https://github.com/Activiti/Activiti?tab=readme-ov-file

插件安裝

在idea插件中安裝繪圖插件
解決中文亂碼
  • 在IDEA中將File–>Settings–>Editor–>File Encodings修改為UTF-8
  • 在IDEA的Help–>Edit Custom VM Options中末尾添加-Dfile.encoding=UTF-8
  • 在IDEA的安裝目錄的bin目錄下將idea.exe.vmoptionsidea64.exe.vmoptions兩個文件末尾添加-Dfile.encoding=UTF-8
  • 重啟idea

Activiti7使用

創建Spring Boot項目

使用IDE中的Spring Boot項目創建向導,創建一個新的Spring Boot項目。

添加依賴

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.10.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>oa-activiti-workflow</artifactId><version>0.0.1-SNAPSHOT</version><name>oa-activiti-workflow</name><description>oa-activiti-workflow</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>8</java.version><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><activiti-dependencies.version>7.1.0.M3.1</activiti-dependencies.version></properties><dependencyManagement><dependencies><dependency><groupId>org.activiti.dependencies</groupId><artifactId>activiti-dependencies</artifactId><version>${activiti-dependencies.version}</version><scope>import</scope><type>pom</type></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><artifactId>junit-jupiter</artifactId><groupId>org.junit.jupiter</groupId></exclusion></exclusions></dependency><!--activiti 7.x依賴 --><dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-starter</artifactId><!-- 由于activiti7是使用mybatis作為orm框架,我這里整合mybatis-plus,所以需要排除mybatis --><exclusions><exclusion><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.8.2</version> <!-- 或最新版本 --><scope>test</scope></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>3.1.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

配置數據庫和Activiti配置

spring.application.name=oa-activiti-workflow
server.port=18080
# 數據庫鏈接信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/activiti?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=rootroot# 配置mybatis plus打印sql日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl# activiti配置
## 檢測歷史表是否存在 activiti7默認沒有開啟數據庫歷史記錄 啟動數據庫歷史記錄
spring.activiti.db-history-used=true
# 記錄歷史等級 可配置的歷史級別有none, activity, audit, full
## none:不保存任何的歷史數據,因此,在流程執行過程中,這是最高效的。
## activity:級別高于none,保存流程實例與流程行為,其他數據不保存。
## audit:除activity級別會保存的數據外,還會保存全部的流程任務及其屬性。audit為history的默認值。
## full:保存歷史數據的最高級別,除了會保存audit級別的數據外,還會保存其他全部流程相關的細節數據,包括一些流程參數等
spring.activiti.history-level=full
## 1.false:默認值。activiti在啟動時,對比數據庫表中保存的版本,如果沒有表或者版本不匹配,將拋出異常
## 2.true: activiti會對數據庫中所有表進行更新操作。如果表不存在,則自動創建
## 3.create_drop: 在activiti啟動時創建表,在關閉時刪除表(必須手動關閉引擎,才能刪除表)
## 4.drop-create: 在activiti啟動時刪除原來的舊表,然后在創建新表(不需要手動關閉引擎)
spring.activiti.database-schema-update=true
# 校驗流程文件,默認校驗resources下的processes文件夾里的流程文件
spring.activiti.check-process-definitions=false

啟動類

package com.example.oaactivitiworkflow;import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;@SpringBootApplication(exclude = {//activiti 默認整合security,屏蔽Security認證SecurityAutoConfiguration.class,ManagementWebSecurityAutoConfiguration.class,JndiDataSourceAutoConfiguration.class,XADataSourceAutoConfiguration.class
})
public class OaActivitiWorkflowApplication {public static void main(String[] args) {SpringApplication.run(OaActivitiWorkflowApplication.class, args);}}

注意事項

spring.activiti.database-schema-update=true配置完啟動測試后,發現發生了報錯無法自動創建表。報錯內容如下
Caused by: org.activiti.engine.ActivitiException: Could not update Activiti database schema: unknown version from database: '8.1.0'
該錯誤是由于  Activiti引擎版本與數據庫架構版本不匹配 導致的。具體表現為:
  1. 數據庫中記錄的Activiti架構版本(schema.version)為8.1.0,但當前項目使用的Activiti依賴版本無法識別該版本號。
  2. 常見原因包括:
  • 項目依賴的Activiti版本低于數據庫中的架構版本。
  • 數據庫版本信息被手動修改或未正確初始化。
  • 依賴沖突導致實際加載的Activiti版本與預期不符。
解決辦法:
  • 手動下載創建表的sql,地址:
Activiti/activiti-core/activiti-engine/src/main/resources/org/activiti/db/create at develop · Activiti/Activiti · GitHubActiviti is a light-weight workflow and Business Process Management (BPM) Platform targeted at business people, developers and system admins. Its core is a super-fast and rock-solid BPMN 2 process engine for Java. It's open-source and distributed under the Apache license. Activiti runs in any Java application, on a server, on a cluster or in the cloud. It integrates perfectly with Spring, it is extremely lightweight and based on simple concepts. - Activiti/activiti-core/activiti-engine/src/main/resources/org/activiti/db/create at develop · Activiti/Activitihttps://github.com/Activiti/Activiti/tree/develop/activiti-core/activiti-engine/src/main/resources/org/activiti/db/create
  • 在數據庫中執行創建:
  • 修改版本信息,因為我使用的Activiti版本是7.1.0對應的scheme.version為7.0.0.0:
UPDATE ACT_GE_PROPERTY SET VALUE_ = '7.0.0.0' WHERE NAME_ = 'schema.version';
修改后啟動build正常。

Activiti表介紹

Activiti 的表都以 ACT_ 開頭。
Activiti 使用到的表都是 ACT_ 開頭的。表名的第二部分用兩個字母表明表的用途。
  • ACT_GE_ (GE) 表示 general 全局通用數據及設置,各種情況都使用的數據。
  • ACT_HI_ (HI) 表示 history 歷史數據表,包含著程執行的歷史相關數據,如結束的流程實例,變量,任務,等等
  • ACT_ID_ (ID) 表示 identity 組織機構,用戶記錄,流程中使用到的用戶和組。這些表包含標識的信息,如用戶,用戶組,等等。
  • ACT_RE_ (RE) 表示 repository 存儲,包含的是靜態信息,如,流程定義,流程的資源(圖片,規則等)。
  • ACT_RU_ (RU) 表示 runtime 運行時,運行時的流程變量,用戶任務,變量,職責(job)等運行時的數據。Activiti 只存儲實例執行期間的運行時數據,當流程實例結束時,將刪除這些記錄。這就保證了這些運行時的表小且快。

數據表介紹

一般數據

表名說明
ACT_GE_BYTEARRAY存儲通用的流程定義和流程資源的二進制數據表
ACT_GE_PROPERTY系統屬性表,存儲流程引擎級別的數據,初始化時會默認插入三條記錄

流程歷史記錄

表名說明
ACT_HI_ACTINST歷史節點表
ACT_HI_ATTACHMENT歷史附件表
ACT_HI_COMMENT歷史說明信息表
ACT_HI_DETAIL記錄流程運行中的歷史細節信息
ACT_HI_IDENTITYLINK存儲流程運行中的歷史用戶關系
ACT_HI_PROCINST歷史流程實例表
ACT_HI_TASKINST歷史任務實例表
ACT_HI_VARINST記錄流程運行中的歷史變量信息

流程定義表

表名說明
ACT_RE_DEPLOYMENT部署單元信息表
ACT_RE_MODEL模型信息表
ACT_RE_PROCDEF已部署的流程定義表

運行實例表

表名說明
ACT_RU_EVENT_SUBSCR運行時事件表
ACT_RU_EXECUTION運行時流程執行實例表
ACT_RU_IDENTITYLINK存儲任務節點與參與者關系的運行時用戶信息表
ACT_RU_JOB運行時作業表
ACT_RU_TASK運行時任務表
ACT_RU_VARIABLE運行時變量表

表說明

act_ge_bytearray

  • 二進制數據表,存儲通用的流程定義和流程資源
字段名字段描述數據類型主鍵允許空取值說明
ID_主鍵IDnvarchar(64)YN表的主鍵標識
REV_樂觀鎖版本號intNY用于實現樂觀鎖控制的版本字段
NAME_部署文件名稱nvarchar(255)NY流程定義文件名稱,如: leave.bpmn.png
DEPLOYMENT_ID_部署IDnvarchar(64)NY關聯部署表的ID
BYTES_文件內容varbinary(max)NY存儲部署文件的二進制數據
GENERATED_文件生成來源標識tinyintNY0表示用戶生成,1表示系統自動生成

act_ge_property

  • 屬性數據表:屬性數據表。存儲整個流程引擎級別的數據。
    字段名字段描述數據類型主鍵允許為空取值說明
    NAME_名稱nvarchar(64)
    VALUE_nvarchar(300)5.create(5.)
    REV_樂觀鎖intversion

act_hi_actinst

  • 歷史節點表:歷史活動信息。這里記錄流程流轉過的所有節點,與HI_TASKINST不同的是,taskinst只記錄usertask內容
字段名稱字段描述數據類型主鍵為空取值說明
ID_ID標識nvarchar(64)
PROC_DEF_ID_流程定義IDnvarchar(64)
PROC_INST_ID_流程實例IDnvarchar(64)
EXECUTION_ID_執行實例IDnvarchar(64)
ACT_ID_節點IDnvarchar(225)節點定義ID
TASK_ID_任務實例IDnvarchar(64)任務實例ID(其他節點類型實例ID為空)
CALL_PROC_INST_ID_外部調用流程實例IDnvarchar(64)外部調用流程的實例ID
ACT_NAME_節點名稱nvarchar(225)節點定義名稱
ACT_TYPE_節點類型nvarchar(225)如startEvent、userTask
ASSIGNEE_簽收人nvarchar(64)節點簽收人
START_TIME_開始時間datetime
END_TIME_結束時間datetime
DURATION_耗時numeric(19,0)毫秒值
DELETE_REASON_刪除原因nvarchar(4000)
TENANT_ID_租戶IDnvarchar(225)

act_hi_attachment

  • 歷史附件表
字段名稱
字段描述
數據類型
主鍵
為空
取值說明
ID_
ID_
nvarchar(64)
主鍵ID
REV_
樂觀鎖
integer
Version
USER_ID_
用戶ID
nvarchar(255)
用戶ID
NAME_
名稱
nvarchar(255)
附件名稱
DESCRIPTION_
描述
nvarchar(4000)
描述
TYPE_
類型
nvarchar(255)
附件類型
TASK_ID_
任務實例ID
nvarchar(64)
節點實例ID
PROC_INST_ID_
流程實例ID
nvarchar(64)
流程實例ID
URL_
URL_
nvarchar(4000)
附件地址
CONTENT_ID_
字節表的ID
nvarchar(64)
ACT_GE_BYTEARRAY的ID
TIME_
datetime

act_hi_comment

  • 歷史意見表
字段名稱字段描述數據類型主鍵允許為空取值說明
ID_ID標識nvarchar(64)主鍵ID
TYPE_類型nvarchar(255)類型:event(事件)comment(意見)
TIME_時間datetime記錄時間
USER_ID_用戶IDnvarchar(64)操作人ID
TASK_ID_節點任務IDnvarchar(64)節點實例ID
PROC_INST_ID_流程實例IDnvarchar(255)流程實例ID
ACTION_行為類型nvarchar(64)具體說明見備注1
MESSAGE_基本信息nvarchar(4000)存儲流程生成信息,如審批意見
FULL_MSG_完整內容varbinary(max)附件存儲地址

act_hi_detail 

  • 歷史詳情表:流程中產生的變量詳細,包括控制流程流轉的變量,業務表單中填寫的流程需要用到的變量等。
字段名稱
字段描述
數據類型
主鍵
為空
取值說明
ID_
ID_
nvarchar(64)
主鍵
TYPE_
類型
nvarchar(255)
見備注2
PROC_INST_ID_
流程實例ID
nvarchar(64)
流程實例ID
EXECUTION_ID_
執行實例ID
nvarchar(64)
執行實例ID
TASK_ID_
任務實例ID
nvarchar(64)
任務實例ID
ACT_INST_ID_
節點實例I

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/907379.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/907379.shtml
英文地址,請注明出處:http://en.pswp.cn/news/907379.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VoltAgent 是一個開源 TypeScript 框架,用于構建和編排 AI 代理

?一、軟件介紹 文末提供程序和源碼下載 VoltAgent 是一個開源 TypeScript 框架&#xff0c;用于構建和編排 AI 代理 二、什么是 VoltAgent&#xff1f; AI 代理框架提供了構建由自主代理提供支持的應用程序所需的基礎結構和工具。這些代理通常由大型語言模型 &#xff08;&am…

《仿盒馬》app開發技術分享-- 訂單詳情頁(端云一體)

開發準備 在之前的章節中我們實現了訂單的提交&#xff0c;以及提交之后跳轉到確認訂單頁面&#xff0c;在確認訂單頁面我們添加了一個入口&#xff0c;這個入口是查詢訂單&#xff0c;當我們點擊入口時&#xff0c;我們需要跳轉到一個新的界面&#xff0c;這個界面通過接收上…

傳統項目管理總拖延?Scrum敏捷全流程拆解

在互聯網高速發展的時代&#xff0c;企業競爭的核心要素正逐漸向 "速度" 傾斜。市場環境瞬息萬變&#xff0c;用戶需求呈現出多元化、動態化的顯著特征&#xff0c;而傳統管理模式固有的滯后性與僵化性&#xff0c;已難以匹配快速迭代的市場需求。在此背景下&#xf…

GelSight Mini觸覺傳感器:7μm精度+3D 映射,賦能具身智能精密操作

GelSight Mini 高分辨率視觸覺傳感器采用先進的光學成像與觸覺感知技術&#xff0c;賦予機器人接近人類的觸覺能力。該設備可捕捉物體表面微觀細節&#xff0c;并生成高精度的2D/3D數字映射&#xff0c;幫助機器人識別形狀、紋理及接觸力&#xff0c;從而執行更復雜、精準的操作…

【電路筆記 TMS320F28335DSP】McBSP 從源時鐘得到 生成時鐘 CLKG 幀同步信號 FSG

對應于原文 Multichannel Buffered Serial Port (McBSP)的 2.5.3 Data Clock Generation。 CLKG Figure 2-4. Sample Rate Generator Block Diagram CLKG 是采樣率發生器輸出的數據位時鐘&#xff08;Data Bit Clock&#xff09;&#xff0c;它被用來控制&#xff1a; 數據發…

(25年5.28)ChatGPT Plus充值教程與實用指南:附國內外使用案例與模型排行

更多具體來源&#xff1a;查看原文 ChatGPT Plus 充值教程 由于國內卡無法直接充值 chatgpt&#xff0c;通常需要借助虛擬卡。目前咱們常用的方式是通過虛擬卡平臺獲取。因平臺審核要求這里不細說&#xff0c;具體看原文。 ChatGPT Plus主要使用方向 ChatGPT Plus 提供了更…

38. 自動化測試異步開發之編寫客戶端異步webdriver接口類

Selenium異步瀏覽器操作實現原理深度解析 一、AsyncBrowser類核心結構 1.1 類定義與啟動方法 class AsyncBrowser(Command):@classmethodasync def start(cls, remote_driver_server: str

國芯思辰| 霍爾電流傳感器AH811為蓄電池負載檢測系統安全護航

在電動車、儲能電站、不間斷電源&#xff08;UPS&#xff09;等設備中&#xff0c;蓄電池作為關鍵的儲能單元&#xff0c;其運行狀態直接關系到設備的穩定性和使用壽命。而準確監測蓄電池的負載情況&#xff0c;是保障其安全、高效運行的關鍵。霍爾電流傳感器 AH811憑借獨特的技…

[Java惡補day8] 3. 無重復字符的最長子串

給定一個字符串 s &#xff0c;請你找出其中不含有重復字符的 最長 子串 的長度。 示例 1: 輸入: s “abcabcbb” 輸出: 3 解釋: 因為無重復字符的最長子串是 “abc”&#xff0c;所以其長度為 3。 示例 2: 輸入: s “bbbbb” 輸出: 1 解釋: 因為無重復字符的最長子串是 “…

kafka學習筆記(三、消費者Consumer使用教程——從指定位置消費)

1.簡介 Kafka的poll()方法消費無法精準的掌握其消費的起始位置&#xff0c;auto.offset.reset參數也只能在比較粗粒度的指定消費方式。更細粒度的消費方式kafka提供了seek()方法可以指定位移消費允許消費者從特定位置&#xff08;如固定偏移量、時間戳或分區首尾&#xff09;開…

【JS進階】JavaScript 中 this 值的確定規則

JavaScript 中 this 值的確定規則 1. 默認綁定&#xff08;獨立函數調用&#xff09; 當函數作為普通函數調用時&#xff0c;this 指向全局對象&#xff08;瀏覽器中是 window&#xff0c;Node.js 中是 global&#xff09;&#xff0c;嚴格模式下是 undefined。 function sh…

【凌智視覺模塊】rv1106 部署 pp-humseg 模型

人像分割簡介 ? 凌智視覺模塊 是一款基于rv1106芯片開發的視覺模塊&#xff0c;專注于視覺模型部署與開發。 人像分割是一種基于計算機視覺的技術&#xff0c;通過深度學習算法精準識別圖像或視頻中的人物主體&#xff0c;將其與背景進行像素級分離。該技術可實時運行于移動端…

wangeditor富文本編輯器+vue3粘貼內容樣式處理

又是一個風格和日立的上午&#xff0c;某只菜鳥高高興興的騎著小電驢去上班&#xff0c;本著上班只要不遲到的理念飛速前行&#xff08;遲到扣錢啊~&#xff09;&#xff0c;高高興興的行走在路上。來到工位剛拴上我的繩子組長就開始滴滴俺&#xff0c;頓時我心中大感不妙&…

實測,大模型誰更懂數據可視化?

大家好&#xff0c;我是 Ai 學習的老章 看論文時&#xff0c;經常看到漂亮的圖表&#xff0c;很多不知道是用什么工具繪制的&#xff0c;或者很想復刻類似圖表。 實測&#xff0c;大模型 LaTeX 公式識別&#xff0c;出乎預料 前文&#xff0c;我用 Kimi、Qwen-3-235B-A22B、…

深度學習-梯度消失和梯度爆炸

梯度消失 在某些神經網絡中&#xff0c;隨著網絡深度的增加&#xff0c;梯度在隱藏層反向傳播時傾向于變小&#xff0c;這就意味著&#xff0c;前面隱藏層中的神經元要比后面的學習起來更慢&#xff0c;這種現象就叫做“梯度消失”&#xff1b; 梯度爆炸 如果我們進行一些特殊…

Go 語言基礎 2 Func,流程控制

更多個人筆記見&#xff1a; github個人筆記倉庫 gitee 個人筆記倉庫 個人學習&#xff0c;學習過程中還會不斷補充&#xff5e; &#xff08;后續會更新在github上&#xff09; 文章目錄 Func 函數函數棧概念 函數表示類型 Anonymous func 匿名函數closure 閉包基礎示例http利…

【Linux 學習計劃】-- 倒計時、進度條小程序

目錄 \r 、\n、fflush 倒計時 進度條 進度條進階版 結語 \r 、\n、fflush 首先我們先來認識這三個東西&#xff0c;這將會是我們接下來兩個小程序的重點之一 首先是我們的老演員\n&#xff0c;也就是回車加換行 這里面其實包含了兩個操作&#xff0c;一個叫做回車&…

從零實現wss通信示例(WebSocket SSL)

客戶端和服務端代碼框架跟上一篇一致,僅增加了ssl的證書部分用于加密通信,明文通信(ws協議)見上一篇【https://blog.csdn.net/suoxd123/article/details/148093934】 1. 證書創建 1. 安裝openssl 【官網地址】:https://slproweb.com/products/Win32OpenSSL.html 1.2 …

mysql 索引失效有哪些

InnoDB存儲引擎根據索引類型不同&#xff0c;分為聚簇索引和二級索引 聚簇索引&#xff1a;葉子節點存放的是實際數據 二級索引&#xff1a;存放的是主鍵值&#xff0c;不是實際數據 1.對索引使用左或者左右模糊匹配 select * from t_user where name like %林‘&#xff1b…

LabVIEW通用測控平臺設計

基于 LabVIEW 圖形化編程環境&#xff0c;設計了一套適用于工業自動化、科研測試領域的通用測控平臺。通過整合研華、NI等品牌硬件&#xff0c;實現多類型數據采集、實時控制及可視化管理。平臺采用模塊化架構&#xff0c;支持硬件靈活擴展&#xff0c;解決了傳統測控系統開發周…