0 Star 0 Fork 128

miss_ding / DBMetadata

forked from abel533 / DBMetadata 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

数据库元数据

本工具可用于数据库表和字段的查询,以及数据库元数据的进一步使用。

目前支持以下数据库(都能正确获取注释信息):

  1. Oracle
  2. Mysql
  3. MariaDB
  4. SQLite
  5. Hsqldb
  6. PostgreSQL
  7. DB2
  8. 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)

一般情况下我们需要设置catalogschemaPatter,还可以设置tableNamePattern来限定要获取的表。

其中schemaPattertableNamePattern都支持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

界面预览

登录界面

登录

主界面

主界面

The MIT License (MIT) Copyright (c) 2015 abel533@gmail.com Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

数据库元数据 - 通用工具 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/dingkefeng/DBMetadata.git
git@gitee.com:dingkefeng/DBMetadata.git
dingkefeng
DBMetadata
DBMetadata
master

搜索帮助