同步操作将从 abel533/DBMetadata 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#数据库元数据
本工具可用于数据库表和字段的查询,以及数据库元数据的进一步使用。
目前支持以下数据库(都能正确获取注释信息):
Oracle
Mysql
MariaDB
SQLite
Hsqldb
PostgreSQL
DB2
SqlServer(2005+)
- 必须使用jtds驱动#本工具目前分为三部分
##DBMetadata-core
数据库元数据核心部分,该部分完全独立,不依赖任何第三方,获取元数据部分的代码参考了MyBatis Generator。
如果你要连接数据库,需要有该数据库的JDBC驱动。
###使用方法:
###1. 引入jar包或者Maven依赖:
<dependency>
<groupId>com.github.abel533</groupId>
<artifactId>DBMetadata-core</artifactId>
<version>0.1.1</version>
</dependency>
下载Jar包:DBMetadata-core-x.x.x.jar
###2. 使用方法
首先创建一个SimpleDataSource
:
SimpleDataSource dataSource = new SimpleDataSource(
Dialect.MYSQL,
"jdbc:mysql://localhost:3306/test",
"root",
""
);
除了上面这种方式外,还可以使用SimpleDataSource(Dialect dialect, DataSource dataSource)
这个构造方法,直接使用其他的DataSource
。
然后就是用创建好的dataSource
去创建DBMetadataUtils
:
DBMetadataUtils dbMetadataUtils = new DBMetadataUtils(dataSource);
创建一个DatabaseConfig
,调用introspectTables(config)
方法获取数据库表的元数据:
DatabaseConfig config = new DatabaseConfig("mydb", null);
List<IntrospectedTable> list = dbMetadataUtils.introspectTables(config);
这里需要注意DatabaseConfig
,他有下面三个构造方法:
DatabaseConfig()
DatabaseConfig(String catalog, String schemaPattern)
DatabaseConfig(String catalog, String schemaPattern, String tableNamePattern)
一般情况下我们需要设置catalog
和schemaPatter
,还可以设置tableNamePattern
来限定要获取的表。
其中schemaPatter
和tableNamePattern
都支持sql的%
和_
匹配。
获取数据库表的元数据后,我们就可以利用这些数据了。
下面代码是简单的将这些信息输出到控制台:
for (IntrospectedTable table : list) {
System.out.println(table.getName() + ":");
for (IntrospectedColumn column : table.getAllColumns()) {
System.out.println(column.getName() + " - " +
column.getJdbcTypeName() + " - " +
column.getJavaProperty() + " - " +
column.getJavaProperty() + " - " +
column.getFullyQualifiedJavaType().getFullyQualifiedName() + " - " +
column.getRemarks());
}
}
##DBMetadata-generator
利用数据库元数据,根据模板生成一些内容。
该项目目前只提供了一个BeetlTemplate
,只有两个静态方法,这只是一个简单的例子。
使用方法如下:
public static void main(String[] args) throws IOException, SQLException {
DBMetadataUtils dbUtils = new DBMetadataUtils(
new SimpleDataSource(Dialect.ORACLE, "jdbc:oracle:thin:@//localhost/orcl", "user", ""));
List<IntrospectedTable> tables = dbUtils.introspectTables(dbUtils.getDefaultConfig());
DBMetadataUtils.sortTables(tables);
BeetlTemplate.exportDatabaseHtml(tables, "d:/test", "db");
for (IntrospectedTable table : tables) {
BeetlTemplate.exportTableHtml(table, "d:/test/tables", table.getName());
}
}
##DBMetadata-swing
这个子项目也算是一个对DBMetadata-core的使用,通过上述工具获取元数据后,使用swing界面展示数据,并且可以通过查询来筛选符合要求的数据。
这个项目除了实现基本的表和字段查询外,还算是一个基于界面使用该工具的基础,你可以在该项目基础上增加其他功能。
###启动
运行com.github.abel533.Launch
即可启动本项目。
本项目提供打包好的程序可供直接使用。
下载地址:http://pan.baidu.com/s/1poGI6
程序为绿色版,需要jre1.7+支持
Windows
根据你jre是32位还是64位来选择dbs_32.exe或者dbs_64.exe来运行。
linux
首先给run.sh增加执行权限,然后运行run.sh
###界面预览
登录界面
主界面
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。