Enterprise Architect 12版本使用教程

news2024/11/19 19:17:40

Enterprise Architect 12版本使用教程

  • 1.下载安装Enterprise Architect 12
  • 2.Enterprise Architect原始DDL模板配置及存在的问题
    • 1.DDL Column Definition原始模板(没有default值:可忽略)
    • 2.DDL Data Type原始模板(timestamp等时间字段的长度默认为0:会报错)
    • 3.DDL Name原始模板(对于数据库名的强引用不方便加表:可忽略)
    • 4.DDl Script File原始模板(SET FOREIGN_KEY_CHECKS=0后面没有分号:会报错)
  • 3.优化Enterprise Architect模板,适应mysql生成ddl
    • 1.DDL Column Definition优化模板
    • 2.DDL Data Type优化模板
    • 3.DDL Name优化模板
    • 4.DDl Script File优化模板
  • 4.生成带注释的DDL语句
    • 1.新建项目
    • 2.新建数据库模型
    • 3.添加元素(添加数据表)
    • 4.设计字段
    • 5.导出DDL
    • 6.导入数据库

1.下载安装Enterprise Architect 12

下载地址

2.Enterprise Architect原始DDL模板配置及存在的问题

查看原始DDL模板
在这里插入图片描述

1.DDL Column Definition原始模板(没有default值:可忽略)

%PI=" "%

%DDLName("EA", "COLUMN", "", "INCLUDE_SURROUND")%

%DDLDataType%

$Type = %columnProperty:"TYPE"%
$Default = %columnProperty:"DEFAULT"%

$Find = ""
%if $Type != "ENUM" and $Type != "SET"%
%if $Default != ""%
$Find = %FIND($Default, "DEFAULT")%
%if $Find == "0"%
$Default = "DEFAULT " + $Default
%endIf%
%endIf%
%endIf%

%if columnBoolProperty:"ZEROFILL" == "T"%
ZEROFILL
%endIf%

%if columnBoolProperty:"UNSIGNED" == "T"%
UNSIGNED
%endIf%


%if columnBoolProperty:"NULLABLE" == "T"%
%if ddlOptionGenerateNullable == "T"%
NULL
%endIf%
%else%
NOT NULL
%endIf%

%if columnBoolProperty:"AutoNum" == "T"%
AUTO_INCREMENT 
%else%
%if $Default != ""%
$Default
%endIf%
%endIf%

%DDLColumnComment%

%PI("I", "")%
,

2.DDL Data Type原始模板(timestamp等时间字段的长度默认为0:会报错)

%PI=""%
 
$Type = %columnProperty:"TYPE"%
 
$DBMS = %ddlTableDBMS%
$Size = %DDL_DATATYPE_SIZE($DBMS, $Type)%
$LENGTH = %columnProperty:"LENGTH"%
 
$Type
 
 
%if $Size=="1" and $LENGTH != "0" and $LENGTH != ""%
(
$LENGTH
)
%elseIf $Size=="2"%
(
%if columnProperty:"PRECISION"==""%
0
%else%
%columnProperty:"PRECISION"%
%endIf%
%if columnProperty:"SCALE" != ""%
,%columnProperty:"SCALE"%
%endIf%
)
%endIf%

3.DDL Name原始模板(对于数据库名的强引用不方便加表:可忽略)

%PI=""%

%if $parameter1 == "EA"%

%if $parameter3 == "INCLUDE_OWNER"%
$owner=%ddlOwner%
%if $parameter2 == "REFERENCE_TABLE"%
$owner=%ddlReferenceTableOwner%
%endIf%
%endIf%

%if $parameter2 == "OWNER"%
$name=%ddlOwner%
%elseIf $parameter2 == "TABLE"%
$name=%ddlTableName%
%if ddlUseAlias == "T"%
$alias=%ddlTableAlias%
%endIf%
%elseIf $parameter2 == "PROCEDURE"%
$name=%ddlProcedureName%
%if ddlUseAlias == "T"%
$alias=%ddlProcedureAlias%
%endIf%
%elseIf $parameter2 == "FUNCTION"%
$name=%ddlFunctionName%
%if ddlUseAlias == "T"%
$alias=%ddlFunctionAlias%
%endIf%
%elseIf $parameter2 == "VIEW"%
$name=%ddlViewName%
%if ddlUseAlias == "T"%
$alias=%ddlViewAlias%
%endIf%
%elseIf $parameter2 == "SEQUENCE"%
$name=%ddlSequenceName%
%if ddlUseAlias == "T"%
$alias=%ddlSequenceAlias%
%endIf%
%elseIf $parameter2 == "PACKAGE"%
$name=%ddlPackageName%
%if ddlUseAlias == "T"%
$alias=%ddlPackageAlias%
%endIf%
%elseIf $parameter2 == "COLUMN"%
$name=%ddlColumnName%
%if ddlUseAlias == "T"%
$alias=%ddlColumnAlias%
%endIf%
%elseIf $parameter2 == "CONSTRAINT"%
$name=%ddlConstraintName%
%if ddlUseAlias == "T"%
$alias=%ddlConstraintAlias%
%endIf%
%elseIf $parameter2 == "CONSTRAINT_COLUMN"%
$name=%ddlConstraintColumnName%
%if ddlUseAlias == "T"%
$alias=%ddlConstraintColumnAlias%
%endIf%
%elseIf $parameter2 == "REFERENCE_TABLE"%
$name=%ddlReferenceTableName%
%if ddlUseAlias == "T"%
$alias=%ddlReferenceTableAlias%
%endIf%
%elseIf $parameter2 == "REFERENCE_COLUMN"%
$name=%ddlReferenceColumnName%
%if ddlUseAlias == "T"%
$alias=%ddlReferenceColumnAlias%
%endIf%
%endIf%

%elseIf $parameter1 == "ODBC"%

%if $parameter3 == "INCLUDE_OWNER"%
$owner=%ddlSchemaOwner%
%endIf%

%if $parameter2 == "OWNER"%
$name=%ddlSchemaOwner%
%elseIf $parameter2 == "TABLE"%
$name=%ddlSchemaTableName%
%elseIf $parameter2 == "COLUMN"%
$name=%ddlSchemaColumnName%
%elseIf $parameter2 == "CONSTRAINT"%
$name=%ddlSchemaConstraintName%
%endIf%

%endIf%


%if $parameter4 == "INCLUDE_SURROUND"%
$left=%DDLLeftSurround%
$right=%DDLRightSurround%

%if $name != ""%
$name = $left + $name + $right
%endIf%

%if $alias != ""%
$alias = $left + $alias + $right
%endIf%

%if $owner != ""%
$owner = $left + $owner + $right
%endIf%

%endIf%

%if ddlOptionUseAlias == "T" and $alias != ""%
$fullName = $alias
%else%
$fullName = $name
%endIf%

%if $owner != ""%
$fullName = $owner + "." + $fullName
%endIf%

$fullName

4.DDl Script File原始模板(SET FOREIGN_KEY_CHECKS=0后面没有分号:会报错)

%PI="\n\n"%

%DDLScriptHeader%
%DDLUseDatabase%

$comment = ""
$start = ""
$end = ""

%if ddlOptionCommentLevel=="All"%
$comment = "T"
$start = "/*"
$end = "*/"
%endIf%


$fkCheckOff = "SET FOREIGN_KEY_CHECKS=0"
$fkCheckOff

%EXECUTE_STRING("Foreign Key Checks", "Set FK Check off", "820", $fkCheckOff)%

$script = %list="DDLDropView" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Drop Views $end
%endIf%
$script
%endIf%

$script = %list="DDLDropTable" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Drop Tables $end
%endIf%
$script
%endIf%

$script = %list="DDLDropProcedure" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Drop Stored Procedures $end
%endIf%
$script
%endIf%

$script = %list="DDLDropFunction" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Drop Functions $end
%endIf%
$script
%endIf%

$script = %list="DDLDropSequence" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Drop Sequences $end
%endIf%
$script
%endIf%

$script = %list="DDLCreateSequence" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Sequences $end
%endIf%
$script
%endIf%

$script = %list="DDLCreateFunction" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Functions $end
%endIf%
$script
%endIf%

$script = %list="DDLCreateTable" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Tables $end
%endIf%
$script
%endIf%

$script = %list="DDLCreateTableConstraints" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Primary Keys, Indexes, Uniques, Checks $end
%endIf%
$script
%endIf%

$script = %list="DDLCreateForeignKeys" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Foreign Key Constraints $end
%endIf%
$script
%endIf%

$fkCheckOff = "SET FOREIGN_KEY_CHECKS=1"
$fkCheckOff
%EXECUTE_STRING("Foreign Key Checks", "Set FK Check on", "300", $fkCheckOff)%


$script = %list="DDLCreateView" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Views $end
%endIf%
$script
%endIf%

$script = %list="DDLCreateProcedure" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Stored Procedures $end
%endIf%
$script
%endIf%

3.优化Enterprise Architect模板,适应mysql生成ddl

1.DDL Column Definition优化模板

%PI=" "%

%DDLName("EA", "COLUMN", "", "INCLUDE_SURROUND")%

%DDLDataType%

$Type = %columnProperty:"TYPE"%
$Default = %columnProperty:"DEFAULT"%

$Find = ""
%if $Type != "ENUM" and $Type != "SET"%
%if $Default != ""%
$Default = "DEFAULT " + $Default
%endIf%
%endIf%

%if columnBoolProperty:"ZEROFILL" == "T"%
ZEROFILL
%endIf%

%if columnBoolProperty:"UNSIGNED" == "T"%
UNSIGNED
%endIf%


%if columnBoolProperty:"NULLABLE" == "T"%
%if ddlOptionGenerateNullable == "T"%
NULL
%endIf%
%else%
NOT NULL
%endIf%

%if columnBoolProperty:"AutoNum" == "T"%
AUTO_INCREMENT 
%else%
%if $Default != ""%
$Default
%endIf%
%endIf%

%DDLColumnComment%

%PI("I", "")%
,

2.DDL Data Type优化模板

%PI=""%  

$Type = %columnProperty:"TYPE"%  

$DBMS = %ddlTableDBMS%  
$Size = %DDL_DATATYPE_SIZE($DBMS, $Type)%  
$LENGTH = %columnProperty:"LENGTH"%  

$Type  


%if $Size=="1" and $LENGTH != "0" and $LENGTH != ""%  
(  
$LENGTH  
)  
%elseIf $Size=="2"%  


(  
%if columnProperty:"PRECISION"==""%  
0  
%else%  
%columnProperty:"PRECISION"%  
%endIf%  
%if columnProperty:"SCALE" != ""%  
,%columnProperty:"SCALE"%  
%endIf%  
)  
%endIf%

3.DDL Name优化模板

%PI=""%

%if $parameter1 == "EA"%

%if $parameter3 == "INCLUDE_OWNER"%
$owner=%ddlOwner%
%if $parameter2 == "REFERENCE_TABLE"%
$owner=%ddlReferenceTableOwner%
%endIf%
%endIf%

%if $parameter2 == "OWNER"%
$name=%ddlOwner%
%elseIf $parameter2 == "TABLE"%
$name=%ddlTableName%
%if ddlUseAlias == "T"%
$alias=%ddlTableAlias%
%endIf%
%elseIf $parameter2 == "PROCEDURE"%
$name=%ddlProcedureName%
%if ddlUseAlias == "T"%
$alias=%ddlProcedureAlias%
%endIf%
%elseIf $parameter2 == "FUNCTION"%
$name=%ddlFunctionName%
%if ddlUseAlias == "T"%
$alias=%ddlFunctionAlias%
%endIf%
%elseIf $parameter2 == "VIEW"%
$name=%ddlViewName%
%if ddlUseAlias == "T"%
$alias=%ddlViewAlias%
%endIf%
%elseIf $parameter2 == "SEQUENCE"%
$name=%ddlSequenceName%
%if ddlUseAlias == "T"%
$alias=%ddlSequenceAlias%
%endIf%
%elseIf $parameter2 == "PACKAGE"%
$name=%ddlPackageName%
%if ddlUseAlias == "T"%
$alias=%ddlPackageAlias%
%endIf%
%elseIf $parameter2 == "COLUMN"%
$name=%ddlColumnName%
%if ddlUseAlias == "T"%
$alias=%ddlColumnAlias%
%endIf%
%elseIf $parameter2 == "CONSTRAINT"%
$name=%ddlConstraintName%
%if ddlUseAlias == "T"%
$alias=%ddlConstraintAlias%
%endIf%
%elseIf $parameter2 == "CONSTRAINT_COLUMN"%
$name=%ddlConstraintColumnName%
%if ddlUseAlias == "T"%
$alias=%ddlConstraintColumnAlias%
%endIf%
%elseIf $parameter2 == "REFERENCE_TABLE"%
$name=%ddlReferenceTableName%
%if ddlUseAlias == "T"%
$alias=%ddlReferenceTableAlias%
%endIf%
%elseIf $parameter2 == "REFERENCE_COLUMN"%
$name=%ddlReferenceColumnName%
%if ddlUseAlias == "T"%
$alias=%ddlReferenceColumnAlias%
%endIf%
%endIf%

%elseIf $parameter1 == "ODBC"%

%if $parameter3 == "INCLUDE_OWNER"%
$owner=%ddlSchemaOwner%
%endIf%

%if $parameter2 == "OWNER"%
$name=%ddlSchemaOwner%
%elseIf $parameter2 == "TABLE"%
$name=%ddlSchemaTableName%
%elseIf $parameter2 == "COLUMN"%
$name=%ddlSchemaColumnName%
%elseIf $parameter2 == "CONSTRAINT"%
$name=%ddlSchemaConstraintName%
%endIf%

%endIf%


%if $parameter4 == "INCLUDE_SURROUND"%
$left=%DDLLeftSurround%
$right=%DDLRightSurround%

%if $name != ""%
$name = $left + $name + $right
%endIf%

%if $alias != ""%
$alias = $left + $alias + $right
%endIf%

%if $owner != ""%
$owner = $left + $owner + $right
%endIf%

%endIf%

%if ddlOptionUseAlias == "T" and $alias != ""%
$fullName = $alias
%else%
$fullName = $name
%endIf%

$fullName

4.DDl Script File优化模板

%PI="\n\n"%

%DDLScriptHeader%
%DDLUseDatabase%

$comment = ""
$start = ""
$end = ""

%if ddlOptionCommentLevel=="All"%
$comment = "T"
$start = "/*"
$end = "*/"
%endIf%


$fkCheckOff = "SET FOREIGN_KEY_CHECKS=0;"
$fkCheckOff

%EXECUTE_STRING("Foreign Key Checks", "Set FK Check off", "820", $fkCheckOff)%

$script = %list="DDLDropView" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Drop Views $end
%endIf%
$script
%endIf%

$script = %list="DDLDropTable" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Drop Tables $end
%endIf%
$script
%endIf%

$script = %list="DDLDropProcedure" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Drop Stored Procedures $end
%endIf%
$script
%endIf%

$script = %list="DDLDropFunction" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Drop Functions $end
%endIf%
$script
%endIf%

$script = %list="DDLDropSequence" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Drop Sequences $end
%endIf%
$script
%endIf%

$script = %list="DDLCreateSequence" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Sequences $end
%endIf%
$script
%endIf%

$script = %list="DDLCreateFunction" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Functions $end
%endIf%
$script
%endIf%

$script = %list="DDLCreateTable" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Tables $end
%endIf%
$script
%endIf%

$script = %list="DDLCreateTableConstraints" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Primary Keys, Indexes, Uniques, Checks $end
%endIf%
$script
%endIf%

$script = %list="DDLCreateForeignKeys" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Foreign Key Constraints $end
%endIf%
$script
%endIf%

$fkCheckOff = "SET FOREIGN_KEY_CHECKS=1;"
$fkCheckOff
%EXECUTE_STRING("Foreign Key Checks", "Set FK Check on", "300", $fkCheckOff)%


$script = %list="DDLCreateView" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Views $end
%endIf%
$script
%endIf%

$script = %list="DDLCreateProcedure" @separator="\n\n"%
%if $script != ""%
%if $comment == "T"%
$start Create Stored Procedures $end
%endIf%
$script
%endIf%

4.生成带注释的DDL语句

1.新建项目

在这里插入图片描述
在这里插入图片描述

2.新建数据库模型

在这里插入图片描述

3.添加元素(添加数据表)

在这里插入图片描述
在这里插入图片描述

4.设计字段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:如果想让主键自增,实现以下效果,记得修改主键字段配置
在这里插入图片描述
在这里插入图片描述

5.导出DDL

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.导入数据库

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

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

相关文章

Diffusion 公式推导

Diffusion:通过扩散和逆扩散过程生成图像的生成式模型 中已经对 diffusion 的原理进行了直观地梳理,本文对其中的数学推导进行讲解,还是基于 DDPM。 目录 一. 预备知识1. 重参数技巧2. 高斯分布的可加性3. 扩散递推式的由来 二. 扩散过程1. 背…

企业计算机服务器中了360勒索病毒如何解密,勒索病毒解密数据恢复

网络技术的不断应用与发展,为企业的生产运营提供了极大便利,但随之而来的网络安全威胁也不断增加。近期,云天数据恢复中心接到很多企业的求助,企业的计算机服务器遭到了360后缀勒索病毒攻击,导致企业的所有数据被加密&…

AtCoder ABC周赛2023 11/4 (Sat) E题题解

目录 原题截图: 原题翻译 题目大意: 主要思路: 代码: 原题截图: 原题翻译 题目大意: 给你一个数组,给你一个公式,让你选k个元素,用公式算出最终得分。 主要思路&am…

云数据库与自建数据库有什么不同?

「自购服务器搭建数据库服务」,涉及到云服务器和物理机服务器的选择。这两者之间存在一定的差别。首先,物理机服务器需要更多的部署及维护操作,而云服务器则通过虚拟化技术提供了更便捷的资源管理和弹性伸缩能力。 总体来说,部署在…

移动云荣获OpenInfra社区“算力基础设施技术突破奖”

近日,一年一度的 OpenInfra Days China在北京召开,大会汇聚了全球各大云厂商的技术专家,共同分享全球前沿基础设施技术的展望和实践经验。在本次大会上,移动云荣获OpenInfra社区颁发的“算力基础设施技术突破奖”,表明…

销售技巧培训之如何提升顾问式销售技巧

销售技巧培训之如何提升顾问式销售技巧 在销售行业中,传统的“推销”模式往往注重产品的特点和优点,而忽视了客户的实际需求和感受。然而,随着消费者意识的提高和市场竞争的加剧,这种“产品导向”的销售方式已经不再适用。取而代…

STM32的BKP与RTC简介

芯片的供电引脚 引脚表橙色的是芯片的供电引脚,其中VSS/VDD是芯片内部数字部分的供电,VSSA/VDDA是芯片内部模拟部分的供电,这4组以VDD开头的供电都是系统的主电源,正常使用时,全部都要接3.3V的电源上,VBAT是…

实现跨VLAN通信、以及RIP路由协议的配置

一、如下图片: 1. 按照拓扑图所示,将8台计算机分别配置到相应的VLAN中。(20分) 2. 配置实现同一VLAN中的计算机可以通信。(22分) 3. 配置实现PC1,PC2,PC3,PC4可以互相通信,PC5,PC6,PC7,PC8可以互…

JavaSE基础50题:19. 递归求斐波那契数列的第N项。

概述 用递归求斐波那契数列的第N项。 斐波那契数列: 1 1 2 3 5 8 …… f(n) f(n-1) f(n-2) 代码 public class P19 {public static int fibnacio(int n) {if (n 1 || n 2) {return 1;}int tmp fibnacio(n-1) fibnacio(n-2);return tmp;}public static void…

大数据技术4:Lambda和Kappa架构区别

前言:在大数据处理领域,两种突出的数据架构已成为处理大量数据的流行选择:Lambda 架构和 Kappa 架构。这些架构为实时处理和批处理提供了强大的技术解决方案,使组织能够从其数据中获得有价值的见解。随着互联网时代来临&#xff0…

No suitable driver found for jdbc:mysql://localhost:3306(2023/12/7更新)

有两种情况: 压根没安装下载了但没设为库或方法不对 大多数为第一种情况: 一. 下载jdbc 打开网址选择一个版本进行下载 https://nowjava.com/jar/version/mysql/mysql-connector-java.html 二.安装jdbc 在项目里建一个lib文件夹 在把之前下载的jar文…

2017下半年软工(桥接模式)

题目——桥接模式(抽象调用实现部分) package org.example.桥接模式;/*** 桥接模式的核心思想是将抽象部分与它的实现部分分离,使它们可以独立变化,就是说你在实现部分:WinImp、LinuxImp基础上还能加上RedHatImp&#…

Java零基础——Elasticsearch篇

1.Elasticsearch简介 Elasticsearch是一个基于Lucene的一个开源的分布式、RESTful 风格的搜索和数据分析引擎。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中&#xf…

入门指南:使用Prometheus监控Linux服务器

Prometheus介绍 Prometheus是一款开源的监控系统,主要用于收集、存储和查询时间序列数据,以便于对系统进行监控和分析。以下是Prometheus的架构图介绍: Prometheus的架构由四个主要组件组成: Prometheus Server(Prom…

【EI会议征稿中】2024年第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)

2024年第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024) 2024 4th International Conference on Artificial Intelligence, Automation and High Performance Computing 2024第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)将于20…

Java实现Socket聊天室

一、网络编程是什么? 在网络通信协议下,不同计算机上运行的程序,进行数据传输。 应用场景:即时通讯、网游对战、金融证券、国际贸易、邮件、等等。 不管是什么场景,都是计算机与计算机之间通过网络进行数据传输。 …

用23种设计模式打造一个cocos creator的游戏框架----(三)外观模式模式

1、模式标准 模式名称:外观模式 模式分类:结构型 模式意图:为一组复杂的子系统提供了一个统一的简单接口。这个统一接口位于所有子系统之上,使用户可以更方便地使用整个系统。 结构图: 适用于: 当你想为…

如何将超过 32000 个字符放入富文本控件中?

在上一篇文章中,我们了解了如何将一整个文件的内容加载的富文本控件中。 我们给出的例子代码运作得还挺符合预期的,但会碰到这样一个问题。 有一天,你尝试使用它来显示法律部门提供的许可协议在产品的安装程序中。 这是一篇巨大的文本文件&a…

软件测试入门:静态测试

什么是静态测试 顾名思义,这里的静态是指程序的状态,即在不执行代码的情况下检查软件应用程序中的缺陷。进行静态测试是为了仅早在开发的早期阶段发现程序缺陷,因为这样可以更快速地识别缺陷并低成本解决缺陷,它还有助于查找动态测…

CubeMx HAL STM32H750 1ms

关于STM32的定时器都通用 timer(单位US)(分频值*重装值) / 定时器所在总线的时钟频率(单位MHZ) 1000us 1 ms