背景

公司可能要写项目报告,然后就需要导出数据库的相关信息。之前我使用PowerDesigner只是简单的来建表生成建表sql.后来由于如果可以连接数据库就直接使用其他工具直接在数据库来建表了,这个PowerDesigner也就没有必要使用了。接到这个需求时我才想起来他,但是生成报告我也是没用过。哈哈,经过摸索终于搞好了。

流程

安装(建议看一遍全文后安装,如果你没有安装的话)

我之前装的早忘了,大家自行百度吧!资源也很多的。

我的版本如图:

2020-08-21_14-44-16

使用

数据库连接,具体位置如图:

图一:

2020-08-21_15-06-42

图二:

2020-08-21_15-13-31

依次点击:Database –> Configure Connections… 弹出上图一

依次点击 Connection Profiles –> 点数据库图标弹出图片二 具体每行的意思很简单 我就不说了。 左下测试连接 成功就可以点确认了。 图一也就有了那个File Name 下的一个连接。

注意

实际上连接数据库这块没那么顺利,我开始连接是失败的。百度了下很多说是因为我的powerdesigner的位数是32位,jdk是64位导致的。看了之后我就想着怎么处理,重新安装一个jdk我是很不愿意的。后面我看了下这个powerdesigner的报错日志发现他是报的无法加载数据库连接的驱动,也就是说我目前配置的 JDBC driver jar files(图二的配置) 的路径powerdesigner无法找到jar包。百度了下是需要配置这个jar包的环境变量才可以。我就在环境路径下加了下问题完美解决:

具体加法如图:(变量值是你的jar包的位置)

2020-08-21_15-27-57

后面我又查了我的jdk是64位 和 我的powerdesigner是32位 但是并没有影响我连接数据库,这也是我贴出来我的powerdesigner的版本信息的原因。如果你还是提示连接失败就要看下版本了。

使用powerdesigner进行数据的工程逆向

1.先新建一个model:

File –> new Model –> Model types –> Physical Data Model –> Physical Diagram 最后点击ok

2.逆向工程到新建的model

File –> Reverse Engineer –> Database 弹出框的model name 写你新建的model的名称 点击确定 然后到达下图:

2020-08-21_15-46-34

左图使用下面的数据连接方式,点输入栏右边的图标 弹出右图 是不是连接方式很眼熟,直接使用我们开始测试好的连接就ok了。输入账号,密码点击确定。

后面很简单我记得就不说了,我们这个比较慢,表很多。完成后基本库里的工程就逆向成功了。

最终目标 生成需要的数据库报告

2020-08-21_15-58-47

先点左边 在弹出框里点那本书是新建报告,第三行是模板就是配置好的生成的模板,我这里由于要的很简单,只需要数据库的表的清单和表的结构和注释,所以我没有使用模板。新建成功后在左边生成了一个Reports的文件夹展开就可以看到我们新建的了。

2020-08-21_16-06-25

点击我们新建的报表后在右边出现一个选项卡。这个区域有两部分,左边是我们可以选择的模型选项,右边是我们想要生成的,由于我们是选的没有模板的所以是空白的。上图是我做的一个模板, 直接在点击title,输入名称 表清单 右边就有了,然后在点击 List of Tables 这样我们就搞好了表的清单的生成。再点击title 名称是 表结构 之后再 点击 Table 最后点Table 下的 List of Table Columns 这样我们的模板就大概好了。 在右边我们要的模板里面 鼠标右击 List of Table Columns 行 选择 Layout 弹出上图中的框,其中 AttributeName 是配置我们要输出的表结构属性,打钩的是我要导出的(Comment 就是数据库字段的注释),右边 Width 是我们输出的表格宽度。鼠标右击 List of Table Columns 行 选择Format 是配置每个表结构的表格的样式的,自己想弄的话自己调一下。最后左上有保存按钮,自己存一下就ok了.

生成报告就很简单了,直接右击我们的报表 点击Generate –> RTF 之后选择保存位置后。他就按照我们的模板生成我们要的报告了。 生成的是一个RTF后缀的文件,直接可以用word打开,自己另存为word就ok了。

感悟

看日志才是最重要的,不要问题定位模糊,浪费时间。如果我开始真的去搞jdk和powerdesigner的位数问题,怕是徒劳无功,幸好自己懒不想折腾jdk,当时是觉得动了jdk自己的其他项目或者使用到jdk会不会出问题,出问题的话又要排查。那我就只好看有木有替代方案,瞟了一眼日志报错信息,发现说的是jar包加载问题,心想那就先解决这个看吧。解决了没想到就ok了。这样也是省了很多麻烦。哈哈