SchemaCrawler:免费的数据库模式发现和理解工具


程序员可以使用JDBC获取数据库元数据,但是使用原始JDBC API数据库元数据作为结果集返回,而不是Java对象。此外,程序员仍然负责管理资源,映射到对象结构和处理异常。这使得使用JDBC API在元数据方面非常麻烦。此外,JDBC API不是很一致。例如,要查找表的类型,您将查看TABLE_TYPE具有字符串值的,但对于过程,PROCEDURE_TYPE是一个整数。另一个例子是getCatalogs()调用,它返回一个只有一列的结果集,相反,getStringFunctions()它返回一个包含函数名列表的字符串,用逗号分隔。
SchemaCrawler尝试通过提供一致且可用的API来解决其中一些问题。数据库元数据以普通旧Java对象(PO​​JO)的形式提供。SchemaCrawler API的一致性和可用性的一些示例如下:

  • Table是一个具有对象集合的Column对象,无需您进行其他调用
  • 布尔值是Java布尔值,不是整数,字符串,或者是null而不是null,枚举值是Java枚举,而不是整数
  • 列表总是返回为 java.util.List
  • 您不必担心数据库资源或异常处理
  • 您可以使用标准的Java编程习惯用法 - 例如,您可以使用Table对象访问Column对象getParent()

SchemaCrawler超越了使用JDBC的可用范围,并且还可以提供有关数据库触发器,序列和同义词的信息。

SchemaCrawler也是一个Java API,它使得处理数据库元数据就像使用普通的旧Java对象一样简单。Java程序员需要访问数据库元数据

  • 为了动态生成SQL语句
  • 在以编程方式确定给定RDBMS的功能时
  • 在数据库中查找表和列的名称和类型时

SchemaCrawler是一个免费的数据库模式发现和理解工具。SchemaCrawler具有很多有用的数据治理功能。您可以使用正则表达式搜索数据库模式对象,并以可读的文本格式输出模式和数据。该输出用作用于数据库文档,并且被设计为DIFF-ED对其他数据库模式。SchemaCrawler还生成架构图。您可以针对数据库以任何标准脚本语言执行脚本。您可以使用lint找到潜在的架构设计问题。

SchemaCrawler几乎支持任何具有JDBC驱动程序的数据库,但为方便起见,它与一些常用的RDBMS系统的驱动程序捆绑在一起。SchemaCrawler适用于支持Java SE 8或更高版本的任何操作系统。
SchemaCrawler也是一个Java API,它使得处理数据库元数据就像使用普通的旧Java对象一样简单。