文档章节

PDMan-国产免费通用数据库建模工具(极简,漂亮)

O龙猫O
 O龙猫O
发布于 2018/05/30 14:30
字数 948
阅读 52594
收藏 57

重要提醒更新说明

目前我们已经更新到2.1.0版本了。 码云地址

背景情况说明

  本人长期以来一直从事于金融应用软件的研发以及项目实施工作,经常做数据库建模(数据表设计)。有一款称心如意的数据库建模工具,自然能够事半功倍,PowerDesigner的pdm模型为我的工作提供了很大的便利性。但电脑换了Mac系统之后,就只能在虚拟机Windows上使用PD,机器越来越吃不消了。PD是一款商业化优秀的建模工具。其设计初衷就是用作数据库建模,所以他必然是一款非常优秀的数据库建模工具。

  但,PowerDesigner有以下几个不足之处,有点不能忍受,萌生了自己做一个数据库建模工具的想法。

  1. 商业化,收费,价格还很贵(** 敲黑板,重点 **)。
  2. 功能太强大,隐藏较深,上手有一定难度,使用起来比较复杂。
  3. 仅限Windows平台使用。
  4. 复杂的功能,配置起来非常麻烦。
  5. 可以支持生成数据库的DDL建表语句以及JavaBean代码,但个性定制极其复杂。
  6. 自动生成文档格式非常难以调整。

PDMan介绍

  在多年的技术积累基础上,通过一个多月的尝试以及努力,PDMan(Physical Data Model Manager)终于成功面世。他有以下特点,是PowerDesinger之外,数据库建模的一个非常不错的替代方案。特点如下:

  1. 永远免费使用(** * 敲黑板,重点* **),目前已经使用MIT协议开源。
  2. 功能简洁,去除晦涩难懂的设置,化繁为简,实用为上,上手非常容易。
  3. Windows,Mac,Linux三个平台均可以使用(** 敲黑板,重点 **)。
  4. 自带参考案例,学习容易。新建一个项目,完全不需要做任何配置。
  5. 对开发极其友好,可生成各种数据库以及编程语言的模型类。
  6. 目前系统默认实现了MySQL,Oracle,Java的代码自动生成,并且带注释。其他类型的数据库或语言,只需要添加相应的“数据库”并设置好相应的doT模板就可以了。
  7. 一键自动生成MarkDown以及HTML格式的数据表结构文档,方便客户交付以及交流。
  8. 数据库模型版本管理功能,在版本变动之后,可直接生成数据表结构的DDL语句。
  9. 数据库模型设计直接同步至数据库。

## 上图

说了那么多,先暏为快

启动画面:

主工作界面:

数据类型以及数据域:

** 字段以及代码:**

** 生成文档: **

** 版本管理:**

## 鸣谢开源

  站在巨人的肩上,PDMan的推出,离不开开源的支持,主要使用到的技术如下:

贡献者

  • @菠罗 主要设计者、兼任测试员
  • @牛叉刘教授 主要开发者
  • @mtain 开发者
  • @CaroTu 先驱者
  • #TinaYan 数据表图形展现皮肤设计
  • #莎莎 UI界面以及LOGO设计(备注:是个纯爷们儿)

下载以及交流

欢迎加钉钉群交流

© 著作权归作者所有

O龙猫O
粉丝 100
博文 39
码字总数 21143
作品 1
苏州
部门经理
私信 提问
加载中

评论(91)

O龙猫O
O龙猫O 博主

引用来自“星空海”的评论

多人编辑,标记同步失败
团队协作,目前我们还没有资源投入去解决这个问题。
星空海
多人编辑,标记同步失败
aliger
aliger
字段值不对,比如数据库id varchar(32),导出到pdman里变成了varchar(31)了
O龙猫O
O龙猫O 博主

引用来自“天空城2”的评论

引用来自“ye飘零”的评论

可以加一个字符串自定义长度吗,类似于PD有个长度一列。
同求,感觉就是这个太麻烦了,要先建数据类型,这样组合起来就无穷了,太折腾了。除非所有系统全部在这上面折腾,固定几个长度,要不老项目多,很难使用。

老项目,可以做逆向。一个系统,数据类型就那么几种,不会太多的。
天空城2

引用来自“ye飘零”的评论

可以加一个字符串自定义长度吗,类似于PD有个长度一列。
同求,感觉就是这个太麻烦了,要先建数据类型,这样组合起来就无穷了,太折腾了。除非所有系统全部在这上面折腾,固定几个长度,要不老项目多,很难使用。
南风_
南风_

引用来自“O龙猫O”的评论

引用来自“南风_”的评论

在测试连接数据库时(oracle) 驱动地址 用户名密码保证无误的情况下测试连接失败 查看系统日志报错:
2019-04-03 13:31:47.494 [main] ERROR group.rober.pdman.dbconnector.Application - 未知的错误
java.lang.NullPointerException: null
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:264)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:23)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:16)
  at group.rober.pdman.dbconnector.Application.main(Application.java:75)


java.lang.NullPointerException
Exception in thread "main" java.lang.RuntimeException: java.lang.NullPointerException
  at group.rober.pdman.dbconnector.Application.main(Application.java:95)
Caused by: java.lang.NullPointerException
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:264)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:23)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:16)
  at group.rober.pdman.dbconnector

你的版本是多少?

引用来自“南风_”的评论

卸载2.1.3之后 启动2.1.5的安装包会报错:具体内容:Installer integrity check has failed.Common causes include incomplete download and damaged media.Contact the installer's author to obtain a new coty

More information at:
http://nsis.sf.net/NSIS_Error



但是裕兴2.1.3的安装包无问题
Contact the installer's author to obtain a new copy(手打,部分单词打错了)
南风_
南风_

引用来自“O龙猫O”的评论

引用来自“南风_”的评论

在测试连接数据库时(oracle) 驱动地址 用户名密码保证无误的情况下测试连接失败 查看系统日志报错:
2019-04-03 13:31:47.494 [main] ERROR group.rober.pdman.dbconnector.Application - 未知的错误
java.lang.NullPointerException: null
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:264)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:23)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:16)
  at group.rober.pdman.dbconnector.Application.main(Application.java:75)


java.lang.NullPointerException
Exception in thread "main" java.lang.RuntimeException: java.lang.NullPointerException
  at group.rober.pdman.dbconnector.Application.main(Application.java:95)
Caused by: java.lang.NullPointerException
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:264)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:23)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:16)
  at group.rober.pdman.dbconnector

你的版本是多少?
卸载2.1.3之后 启动2.1.5的安装包会报错:具体内容:Installer integrity check has failed.Common causes include incomplete download and damaged media.Contact the installer's author to obtain a new coty

More information at:
http://nsis.sf.net/NSIS_Error



但是裕兴2.1.3的安装包无问题
南风_
南风_

引用来自“O龙猫O”的评论

引用来自“南风_”的评论

在测试连接数据库时(oracle) 驱动地址 用户名密码保证无误的情况下测试连接失败 查看系统日志报错:
2019-04-03 13:31:47.494 [main] ERROR group.rober.pdman.dbconnector.Application - 未知的错误
java.lang.NullPointerException: null
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:264)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:23)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:16)
  at group.rober.pdman.dbconnector.Application.main(Application.java:75)


java.lang.NullPointerException
Exception in thread "main" java.lang.RuntimeException: java.lang.NullPointerException
  at group.rober.pdman.dbconnector.Application.main(Application.java:95)
Caused by: java.lang.NullPointerException
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:264)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:23)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:16)
  at group.rober.pdman.dbconnector

你的版本是多少?
2.1.3 刚才尝试删除2.1.3,从官网下载了2.1.5但是无法安装
O龙猫O
O龙猫O 博主

引用来自“南风_”的评论

在测试连接数据库时(oracle) 驱动地址 用户名密码保证无误的情况下测试连接失败 查看系统日志报错:
2019-04-03 13:31:47.494 [main] ERROR group.rober.pdman.dbconnector.Application - 未知的错误
java.lang.NullPointerException: null
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:264)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:23)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:16)
  at group.rober.pdman.dbconnector.Application.main(Application.java:75)


java.lang.NullPointerException
Exception in thread "main" java.lang.RuntimeException: java.lang.NullPointerException
  at group.rober.pdman.dbconnector.Application.main(Application.java:95)
Caused by: java.lang.NullPointerException
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:264)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:23)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:16)
  at group.rober.pdman.dbconnector

你的版本是多少?
南风_
南风_
在测试连接数据库时(oracle) 驱动地址 用户名密码保证无误的情况下测试连接失败 查看系统日志报错:
2019-04-03 13:31:47.494 [main] ERROR group.rober.pdman.dbconnector.Application - 未知的错误
java.lang.NullPointerException: null
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:264)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:23)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:16)
  at group.rober.pdman.dbconnector.Application.main(Application.java:75)


java.lang.NullPointerException
Exception in thread "main" java.lang.RuntimeException: java.lang.NullPointerException
  at group.rober.pdman.dbconnector.Application.main(Application.java:95)
Caused by: java.lang.NullPointerException
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:264)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:23)
  at group.rober.pdman.command.impl.PingDBCommand.exec(PingDBCommand.java:16)
  at group.rober.pdman.dbconnector
数据库建模工具 - PDMan

软件介绍 PDMan是一款开源免费的数据库模型建模工具,支持Windows,Mac,Linux等操作系统,支持常见数据库MySQL,Oracle,SQLServer,DB2等。PowerDesigner之外,另一个更好的免费的替代方案。他具...

O龙猫O
2018/08/28
0
15
PDMan-2.1.3 发布:用心开源,免费的国产数据库建模工具

一、软件介绍 PDMan 是一款开源免费的数据库模型建模工具,是PowerDesigner之外另一种更好的选择。支持Windows,Mac,Linux等操作系统,具有上手容易,使用简单的特点。 2018年获得码云GVP (Gi...

O龙猫O
03/12
0
0
PDMan-2.1.3 发布:用心开源,免费的国产数据库建模工具

一、软件介绍 PDMan 是一款开源免费的数据库模型建模工具,是PowerDesigner之外另一种更好的选择。支持Windows,Mac,Linux等操作系统,具有上手容易,使用简单的特点。 2018年获得码云GVP (Gi...

O龙猫O
03/12
0
0
PDMan-2.1.1 发布,免费的国产数据库建模工具

一、软件介绍 PDMan 是一款开源免费的数据库模型建模工具,是PowerDesigner之外另一种更好的选择。支持Windows,Mac,Linux等操作系统,具有上手容易,使用简单的特点。 2018年获得码云GVP (Gi...

O龙猫O
01/22
0
10
PDMan-2.1.1 发布:用心开源,免费的国产数据库建模工具(春节前最后一个版本)

一、软件介绍 PDMan 是一款开源免费的数据库模型建模工具,是PowerDesigner之外另一种更好的选择。支持Windows,Mac,Linux等操作系统,具有上手容易,使用简单的特点。 2018年获得码云GVP (Gi...

O龙猫O
01/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java基础-Queue

Queue实现 1、没有实现阻塞接口的 LinkedList:实现了java.util.Queue接口和java.util.AbstractQueue接口   内置的不阻塞队列:PriorityQueue和ConcurrentLinkedQueue   PriorityQueue和...

MyOldTime
25分钟前
1
0
阿里云应用高可用 AHAS 正式商用,可一键提升云上应用可用性

在分布式架构环境下,服务间的依赖日益复杂,可能没有人能说清单个故障对整个系统的影响,构建一个高可用的分布式系统面临着很大挑战。 7月17日,阿里云应用高可用服务AHAS 正式商用,包含架...

阿里云云栖社区
29分钟前
0
0
Audio 和 Video的简单介绍

HTML多媒体 , 主要分为Audio 音频和 Video 视频。 1:Audio 基本语法 src 指定当前播放的音频文件,controls播放控制器,loop歌曲循环,autoplay自动播放 (chrome66之后被禁止)主流浏览器已...

凌兮洛
43分钟前
4
0
【iText5 生成PDF】纯Java代码实现生成PDF(自定义表格、文本水印、单元格样式)

工作中遇到需要生成PDF。最终选择了iText。其他也有通过html再生成。感觉不太适合就用了代码实现。 使用iText 5.5.13.1版本。纯Java代码实现 1.自定义表格合并指定行列完成数据填充 2.自定义...

小帅帅丶
44分钟前
10
0
Redis HyperLogLog

关于 Redis HyperLogLog 在说明 HyperLogLog 之前,我们需要先了解一个概念:基数统计。维基百科中的解释是: cardinality of a set is a measure of the “number of elements“ of the set...

xiaomin0322
44分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部