pdm文件生成的几种方式
来源:互联网 发布:淘宝提前加入购物车 编辑:程序博客网 时间:2024/06/05 02:30
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,字段类型,是否主键,是否外键,是否不为空约束。
具体内容如下:
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函数拆分每行的字段。
此文件是txt的文档,内容格式根据要创建的字段配置项灵活配置。具体vb脚本如下:
Dim system, fileSet system = CreateObject("Scripting.FileSystemObject") '创建文件对象Dim ForReading, ForWriting, ForAppendingdim strdim tittledim firstForReading = 1 ' 设置文件只读 ForWriting = 2 ' 设置文件写入ForAppending = 8 ' 设置文件追加'-----------------------------------------' 主要程序'-----------------------------------------Set file = system.OpenTextFile("D:\table.txt", ForReading)'打开文本文档Dim noLineDim Tab '定义一个表,vbscript中变量没有那么严格的类型,但此变量将来将用来表示tableValidationMode = TrueDim mdl ' 定义当前激活的模型,也就是mdlDim Coldim dm, dmstrDim SSSDim isNewTabledim tableCreateFlagdim tableHeadFlagdim tableContentFlagdim exitFlagSet mdl = ActiveModel '获取当前激活模型tableCreateFlag = falsetableHeadFlag = falsetableContentFlag = falseDo While file.AtEndOfStream <> True '循环读取文档的每一行 SSS = file.ReadLine 'msgbox "tab.name:" &SSS if SSS ="talbe-begin" then tableCreateFlag = true tableHeadFlag = true elseif tableCreateFlag=true thenif tableHeadFlag=true thentitle=split(SSS)exitFlag = isExitTable(mdl,title(0)) if exitflag=true then exit doset tab = mdl.Tables.CreateNew '创建表,并设 置表属性 tab.name=title(0) 'name 'msgbox "tab.name:" &title(0) tab.code=title(1) 'code tab.comment=title(2) 'comment tableHeadFlag = false tableContentFlag = trueelseif tableContentFlag=true thenset col=tab.Columns.CreateNew '创建一行字段str = split(SSS)col.name = str(0) '依次设置属性,同表的属性,字段熟悉也可以设置更多,根据实际情况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 ifend if end ifLoopfile.Closeprivate 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 = flagend function
关于vb脚本语法简单说明以下几点:
1. 基础语法说明
Set 设置变量值,
Dim 定义变量, <pre name="code" class="vb"> function 定义函数,
if .. elseif ... end if 判断语句,
'做为注释行
msgbox 打印内容
+ 链接变量与字符串
<pre name="code" class="vb">& 加上变量 可以输出变量内容
2. 此脚本中几个关键函数说明
file = system.OpenTextFile("D:\table.txt", ForReading) 读取指定目录下的txt文件
<pre name="code" class="vb">file.AtEndOfStream 读取文件流判断是否到结尾
<pre name="code" class="vb">file.ReadLine 读取一行内容 返回字符串
<pre name="code" class="vb">title=split(SSS) 默认按空格分割字符串,返回字符数组
<pre name="code" class="vb">title(0) 获取数组中第一变量值
Set mdl = ActiveModel '获取当前激活模型
set tab = mdl.Tables.CreateNew '创建表,并设 置表属性
tab.name=title(0) 'name属性设置值
set col=tab.Columns.CreateNew '创建一行字段
col.name = str(0) '依次设置属性,同表的属性,字段熟悉也可以设置更多,根据实际情况col.Code = str(1) '设置字段codecol.datatype=str(2)'设置字段datatypecol.Primary=str(3)'设置字段主键if col.Primary=false then ' 判断主键col.Mandatory=str(4) '设置强制不能为空项col.Comment=str(5) '设置字段描述
file.Close 关闭文件流
ok, 那这里目前所知的pdm创建方式流程均总结完毕,每种方式有自己的特定使用条件,可以根据需求场景自行选择。 我们这边奇葩领导要求在半天内(ˇˍˇ) 想~出一种快速创建pdm文件的方式,据说有了这个pdm文件,什么java层次的代码都有了,持久层也可以自动生成,设置前台页面增删改查都可以自动生成了,解决掉这个创建模型一环几乎就可以逆天了,god!
- pdm文件生成的几种方式
- android 读取文件生成Bitmap的几种方式
- pdm文件生成word
- java生成随机数的几种方式
- php生成二维码的几种方式
- php生成二维码的几种方式
- java随机数生成的几种方式
- php生成二维码的几种方式
- php生成二维码的几种方式
- JfreeChart生成图片的几种方式
- mybatis代码生成的几种方式
- mybatis代码生成的几种方式
- 生成Excel的几种方式
- mybatis代码生成的几种方式
- C# 生成订单号的几种方式
- 生成验证码的几种方式
- C# 生成订单号的几种方式
- mybatis代码生成的几种方式
- Visual Studio2010 C#.NET高级编程
- C++设计模式之简单工厂模式
- ubuntu下C/C++集成环境 -- codeblocks
- 机器学习中代价函数选择的数学推导
- ArcGIS教程:Nibble (Spatial Analyst)
- pdm文件生成的几种方式
- sigemptyset、sigaddset、sigprocmask的用法
- android 添加背景方框
- php的命令行用法
- cordys 前端 HTML 提交流程和接受流程数据
- 正则表达式同时匹配中英文_,还控制长度
- ImageView出现警告[Accessibility]Missing contentDescription attribute on image
- Ubuntu 14.04 内核升级 详细步骤
- UITabelView中cell点击展开功能设计