首页 > 数据库 > 其他综合 >

生成pdm文件的方法

2017-12-07

生成pdm文件的方法。PowerDesigner 是数据库建模功能很强大的工具,其可以生成pdm文件建立表结构及表间关联关系,也可以生成java 中bo,po,dao层的代码。还可以生成建库脚本,方便的创建数据库结构。因此,能够快速生成PDM文件是提高数据库建模的必要条件。

PowerDesigner 是数据库建模功能很强大的工具,其可以生成pdm文件建立表结构及表间关联关系,也可以生成java 中bo,po,dao层的代码。还可以生成建库脚本,方便的创建数据库结构。因此,能够快速生成PDM文件是提高数据库建模的必要条件。一般powerdesiger生成PDM模型文件有几种方式:

1. 通过PD界面手动操作,一个一个建表,建字段说明,并建立表关系。

2. 通过已有的sql脚本导入pd中生成pdm模型。

3. 通过连接数据库,对已有的数据表结构进行建模备份。

4. 通过pd的接口调用vb脚本,读取规定模板的文本来建模。

下面我一一说明下这几种方式建模的步骤。

一、 工具选择

a. PowerDesigner 15 ,

b. mysql 5.6

二 , PD界面手动操作建模

步骤如下,按图片顺序:建模-建表-建字段-建约束-建表关联关系保存生成pdm文件

\

第二步:

\

第三步:

\

第四步:

\

第五步:

\

第六步:

\

第七步:

\

二,通过已有sql脚本导入pd中生成pdm文件

第一步:创建sql脚本

\

第二步;File ---> Reverse Engineer--->Databases..---> 确定库及归属模型

\

第三步:点确定按钮配置脚本目录及归属模型

\

第四步:

\

第五步:

\

三、通过连接数据库,对已有的数据表结构进行建模备份。

通过数据库脚本文件生成PDM的步骤为:选择File------->选择Reverse Engineer----->选择database,如下图:

\

----->点击确定----->选择Using script files,如下图所示:

\

----->并选择所要使用的数据库脚本 ----->最后点击确定就会自动生成PDM。

6.2 通过ODBC生成PDM

首先需要先设置一个数据库链接,设置方法如下:鼠标左键选择Database------>选择Confiure Connections----->如果还没有配置过数据库链接的话选择Add Data source----->设置链接的类型、设置链接的文件、选择链接的驱动文件以及配置ID、数据库等内容,如下图所示和:

\

----->配置完成点击旁边的Test Connection,测试一下是否能正常连接----->点击OK即可。

通过ODBC生成PDM的步骤:选择File------->选择Reverse Engineer----->选择database,如下图所示:

\

------->点击确定------->选择table将不需要生成PDM的表去掉,只选择需要生成的表(小技巧:使用shift来批量选择),如下图:

\

------->点击OK就生成了指定数据库的PDM图了。

四、 同步pd工具中提供的执行vb接口批量快速创建表(推荐)

鼠标左键 Tools------>Execute Commands --->Edit/Run Script .. (Ctrl+Shift+X) 快速打开

\

第二步: 在编辑框内编写vb脚本内容,功能是读取D:\table.txt 文档中固定模板格式的数据,包括: 表名称,表描述,表code。 字段别名,字段code,字段类型,是否主键,是否外键,是否不为空约束。

具体内容如下:

[plain] view plain copy

talbe-begin 表1 table1 表说明

字段1 test1 VARCHAR2(322) false true 说明 字段2 test2 VARCHAR2(322) true true 说明

字段3 test3 VARCHAR2(256) false true 说明 talbe-begin

表2 table2 表说明 字段1 test1 VARCHAR2(322) true true 说明

字段2 test2 VARCHAR2(322) true true 说明 字段3 test3 VARCHAR2(256) false true 说明

注意:内容之间用空格分割,便于vb脚本中split函数拆分每行的字段。

[vb] view plain copy

Dim system, file Set system = CreateObject("Scripting.FileSystemObject") '创建文件对象

Dim ForReading, ForWriting, ForAppending

dim str dim tittle

dim first ForReading = 1 ' 设置文件只读

ForWriting = 2 ' 设置文件写入 ForAppending = 8 ' 设置文件追加

'----------------------------------------- ' 主要程序

'----------------------------------------- Set file = system.OpenTextFile("D:\table.txt", ForReading)'打开文本文档

Dim noLine Dim Tab '定义一个表,vbscript中变量没有那么严格的类型,但此变量将来将用来表示table

ValidationMode = True Dim mdl ' 定义当前激活的模型,也就是mdl

Dim Col dim dm, dmstr

Dim SSS Dim isNewTable

dim tableCreateFlag dim tableHeadFlag

dim tableContentFlag dim exitFlag

Set mdl = ActiveModel '获取当前激活模型 tableCreateFlag = false

tableHeadFlag = false tableContentFlag = false

Do While file.AtEndOfStream <> True &#39;循环读取文档的每一行 SSS = file.ReadLine

&#39;msgbox "tab.name:" &SSS if SSS ="talbe-begin" then

tableCreateFlag = true tableHeadFlag = true

elseif tableCreateFlag=true then if tableHeadFlag=true then

title=split(SSS) exitFlag = isExitTable(mdl,title(0))

if exitflag=true then exit do set tab = mdl.Tables.CreateNew &#39;创建表,并设 置表属性

tab.name=title(0) &#39;name &#39;msgbox "tab.name:" &title(0)

tab.code=title(1) &#39;code tab.comment=title(2) &#39;comment

tableHeadFlag = false tableContentFlag = true

elseif tableContentFlag=true then set col=tab.Columns.CreateNew &#39;创建一行字段

str = split(SSS) col.name = str(0) &#39;依次设置属性,同表的属性,字段熟悉也可以设置更多,根据实际情况

col.Code = str(1) col.datatype=str(2)

col.Primary=str(3) if col.Primary=false then

col.Mandatory=str(4) col.Comment=str(5)

end if end if

end if Loop

file.Close private function isExitTable(model,tableName)

dim tables dim table

dim flag set tables = model.Tables

flag = false for each table in tables

if table.name=tableName then flag = true

msgbox "该模型中已存在此表"+tableName exit for

end if next

isExitTable = flag end function

关于vb脚本语法简单说明以下几点:[vb] view plain copy

Set 设置变量值, [vb] view plain copy

Dim 定义变量,

if .. elseif ... end if 判断语句, [vb] view plain copy

&#39;做为注释行 [vb] view plain copy

msgbox 打印内容 [vb] view plain copy

+ 链接变量与字符串 [vb] view plain copy

& 加上变量 可以输出变量内容

2. 此脚本中几个关键函数说明

[vb] view plain copy

file = system.OpenTextFile("D:\table.txt", ForReading) 读取指定目录下的txt文件 [vb] view plain copy

file.AtEndOfStream 读取文件流判断是否到结尾

[vb]

view plain

copy

file.ReadLine 读取一行内容 返回字符串

[vb]

view plain

copy

title=split(SSS) 默认按空格分割字符串,返回字符数组

[vb]

view plain

copy

title(0) 获取数组中第一变量值

[vb]

view plain

copy

Set mdl = ActiveModel &#39;获取当前激活模型 [vb] view plain copy

set tab = mdl.Tables.CreateNew &#39;创建表,并设 置表属性 [vb] view plain copy

tab.name=title(0) &#39;name属性设置值 [vb] view plain copy

set col=tab.Columns.CreateNew &#39;创建一行字段

[vb] view plain copy

col.name = str(0) &#39;依次设置属性,同表的属性,字段熟悉也可以设置更多,根据实际情况 col.Code = str(1) &#39;设置字段code

col.datatype=str(2)&#39;设置字段datatype col.Primary=str(3)&#39;设置字段主键

if col.Primary=false then &#39; 判断主键 col.Mandatory=str(4) &#39;设置强制不能为空项

col.Comment=str(5) &#39;设置字段描述 [vb] view plain copy

file.Close 关闭文件流

相关文章
最新文章
热点推荐