使用SchemaSpy逆向工程生成数据库依赖关系使用SchemaSpy工具可以快速的从数据库中得到
使用SchemaSpy逆向工程生成数据库依赖关系
使用SchemaSpy工具可以快速的从数据库中得到表的依赖关系,同时生成一个生动的“表图”结合的报告。方便快速了解数据库中的数据库对象间关系,类似于PowerDesigner和Toad Data Modeler反向工程得到的结果。但是导出比PowerDesigner更加美观和漂亮。HTML格式报告的交互查询功能非常的方便,更值得称赞的是该工具是使用JAVA编写的开源软件。
通过这个小文儿向大家展示一下这个开源工具的使用方法和强大魅力。
1.必须的软件
1)JDK下载,因为是JAVA程序,所以JDK是必须的。版本最好是1.6或者以上
2)SchemaSpy下载。
3)Graphviz下载,SchemaSpy工具需要使用Graphviz工具中的dot程序绘制表间关系的图片。
4)JDBC
这里我的目的是连接Db2数据库,所以需要DB2的db2jcc.jar,此jar包可以在db2的安装路径中找到。如果只安装了连接db2的客户端,则需要category db.
2.使用方法
1)基本命令语法
java -jar schemaSpy.jar -t dbType -db dbName [-s schema] -u user [-p password] -o outputDir
2)具体使用:
java -jar schemaSpy_5.0.0.jar -t db2net -db ITM -host itmdb -u user -p user -port 50000 -dp C:\Program Files\schemaSpyGUI20090302\db2jcc.jar -o output -s itmuser
3使用到的参数详解
java -jar schemaSpy_5.0.0.jar 调用schemaSpy的jar包
-t orathin 表明连接的是Oracle数据库
-db secooler 数据库的名字,这里可以指定为Oracle的实例名字
-host 主机名,因为是远程操作,这里我指定的是主机的IP地址。如果是连接本地可以指定为“localhost”
-u sec 连接到数据库的用户名
-p sec 连接到的数据库的密码
-port 连接端口号
-dp 指定jdbc的路径
-o 在命令执行的当前路径下生成一个名为output 的文件夹,用来保存生成的报告文件
-s SEC 对itmuser这个Schema进行报告生成
-hq 生成高品质的图片,也可以使用“-lq”选项生成低品质图片,这样可以节省一些空间。
更多命令选项参考
4.查看生成的报告
直接双击Schema_SEC目录中的index.html文件即可得到报告全貌。
演示报告请参见,这个页面真实的体现了SchemaSpy工具的强大魅力。
5.简化操作==使用图形化工具
图形化的工具下载地址如下,慢慢体验吧。

6.SchemaSpy工具还支持哪些数据类型?
使用“-dbhelp”选项查看schemaSpy_4.1.1.jar这个版本支持的数据库类型
E:\software\Graphviz>java -jar schemaSpy_4.1.1.jar -dbhelp
命令结果省略,简单列一下支持数据库的类型如下,基本上所有主流的数据库都支持了。
Type Description
db2 IBM DB2 with 'app' Driver
db2net IBM DB2 with 'net' Driver
derby Derby (JavaDB) Embedded Server
derbynet Derby (JavaDB) Network Server
firebird Firebird
hsqldb HSQLDB Server
informix Informix
maxdb MaxDB
mssql Microsoft SQL Server
mssql05 Microsoft SQL Server 2005
mssql-jtds Microsoft SQL Server with jTDS Driver
mssql05-jtds Microsoft SQL Server 2005 with jTDS Driver
mysql MySQL
ora Oracle with OCI8 Driver
orathin Oracle with Thin Driver
pgsql PostgreSQL
sybase Sybase Server with JDBC3 Driver
sybase2 Sybase Server with JDBC2 Driver
udbt4 DB2 UDB Type 4 Driver
使用SchemaSpy逆向工程生成数据库依赖关系使用SchemaSpy工具可以快速的从数据库中得到的更多相关文章
- Ambari服务依赖关系图生成脚本
1. 生成服务依赖关系 #!/usr/bin/python import sys import commands import json def genDependString(ip): url=&q ...
- makefile自动生成依赖关系
手工编写依赖关系不仅工作量大而且极易出现遗漏,更新也很难及时,修改源或头文件后makefile可能忘记修改.为了解决这个问题,可以用gcc的-M选项自动生成目标文件和源文件的依赖关系.-M选项会把包含 ...
- rpmdeps - 生成 RPM 软件包依赖关系
SYNOPSIS rpmdeps {-P|--provides} {-R|--requires} FILE ... DESCRIPTION rpmdeps 根据 FILE 参数集合,生成软件包依赖关系 ...
- Makefile中头文件在依赖关系中作用
摘于:http://bbs.csdn.net/topics/120024677 (1)在makefile的依赖关系中用不用体现.h头文件?(2)如果在依赖关系中要体现.h头文件,应该体现到什么层次?= ...
- Linux Makefile 生成 *.d 依赖文件及 gcc -M -MF -MP 等相关选项说明【转】
转自:https://blog.csdn.net/qq1452008/article/details/50855810 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...
- Spring boot starter pom的依赖关系说明
Spring Boot 通过starter依赖为项目的依赖管理提供帮助.starter依赖起始就是特殊的maven依赖,利用了传递依赖解析,把常用库聚合在一起,组成了几个为特定功能而定制的依赖. sp ...
- Makefile 9——为依赖关系文件建立依赖关系
现在我们再对complicated项目做一些更改,增加程序文件间依赖关系的复杂度. /× main.c ×/ #include"foo.h" int main(void) { fo ...
- Makefile 8——使用依赖关系文件
Makefile中存在一个include指令,它的作用如同C语言中的#include预处理指令.在Makefile中,可以通过include指令将自动生成的依赖关系文件包含进来,从而使得依赖关系文件中 ...
- Chromium之工程依赖关系.
Chromium各版本可能有差异,我的版本是chromium.r197479,2013/08前后下载的source code. Visual Studio Ultimate版本有工具可以自动生成项目依 ...
随机推荐
- java_String和StringBuffer区别分析
JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据.这个String类提供了数值不可改变的字符串.而这个StringBuffer类提供 ...
- wordpress学习一: 环境搭建
原来想单独找个linux的机器搞套完整的环境,机器都找好了,环境搞了半天.搞完后,感觉环境什么的不重要,核心是学好php和wordpress,单独的环境维护还开发成本都不小,所以 还是采用 xampp ...
- php set_include_path
string set_include_path ( string $new_include_path ) 为当前脚本设置 include_path 运行时的配置选项. Example #2 添加到in ...
- 【Tech】Cassandra安装和启动
1.安装 jre,配置系统环境变量: 2.安装python,配置环境变量: 3.下载cassandra,http://cassandra.apache.org/download/: 4.解压,这里我没 ...
- android:screenOrientation的说明 固定屏幕显示方向
Activity在屏幕当中显示的方向.属性值可以是下表中列出的一个值: "unspecified" 默认值,由系统来选择方向.它的使用策略,以及由于选择时特定的上下文环境,可能会因 ...
- Android控件系列之CheckBox
学习目的: 1.掌握在Android中如何建立CheckBox 2.掌握CheckBox的常用属性 3.掌握CheckBox选中状态变换的事件(监听器) CheckBox简介: CheckBox和Bu ...
- java web每天定时执行任务
第一步: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ...
- Android里的多线程知识点
1.Thread类与Runnable接口 子类继承Thread类实现跑自己逻辑的run方法,在调用Thread类的start方法后,会自动调用run方法,该对象只可以调用一次start方法,即Thre ...
- BZOJ 2342 双倍回文(manacher算法)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2342 题意:定义双倍回文串为:串的长度为4的倍数且串的前一半.后一半.串本身均是回文的. ...
- Linux常用到的指令汇总
Linux常用到的指令汇总 根据鸟哥linux私房菜上定义的:一定要先學會的指令:ls, more, cd, pwd, rpm, ifconfig, find 登入與登出(開機與關機):telnet, ...