阅读更多

dbcrawler是一款轻量级的面向数据库结构的爬虫工具,采用纯Java编写,因此可以跨平台使用。近日发布的dbcrawler 1.4下载版主要支持的数据库包括:Apache Derby,H2 Database,HSQLDB,IBM DB2,MySQL,PostgreSQL,此版本主要是对一些bug的修复,以及增加了对视图的支持。

 

 

dbcrawler最大的特点就是可以无视数据库的类型,通过一套通用的API访问数据库,并将表结构以POJO的方式返回给用户。与Hibernate不同的是:Hiberneta将数据库表结构映射成实体,然后生成数据表结构,而dbcrawler则是通过数据库表结构来生成对应的实体。

 

另外,dbcrawler是专门为遍历表结构而制作使用十分简单并且可以以更加直接的方式将数据库结构展示给用户。

 

dbcrawler的使用:

 

DBCrawler dbCrawler = new DBCrawler(connection, ConfigEnum.MAXIMUM);
DataBase dataBase = dbCrawler.getDatabase();
System.out.println("productName :" + dataBase.getProductName() + " version:" + dataBase.getProductVersion());

//Return Schemas
SchemaSet schemaSet = dataBase.getSchemaSet();
Set<Schema> schemas = schemaSet.getSchemas();
//Iterate to Fetch the schema information and Tables
for(Schema schema : schemas)
{
   System.out.println("SchemaName :" + schema.getSchamaName());
   TableSet tableSet = schema.getTableSet();
   Set<Table> tables = tableSet.getTables();
   //Iterate to fetch the tables 
   for(Table table : tables)
   {
     System.out.println("tableName :" + table.getTableName());
     PrimaryKey primaryKey = table.getPrimaryKey();
     System.out.println("pk_Name:"+primaryKey.getPkName() + " PrimaryKey Columns:" + primaryKey.getColumns());
      
     ColumnSet columnSet = table.getColumnSet();
     System.out.println("Table Columns:"+ columnSet.getColumns());

     Set<ForeignKey> foreignKeys = table.getForeignKeys();
     System.out.println("foreignKeys:"+foreignKeys);
    }
}

 

点击查看详情:http://code.google.com/p/dbcrawler/

8
2
评论 共 5 条 请登录后发表评论
5 楼 heoxsoft 2010-09-19 23:00
This project is no longer under active development and has been superseded by SpiderDB
4 楼 yin_bp 2010-09-19 16:08
bbossgroups 开源项目的持久层框架也有类似的功能哦,支持所有的主流数据库,而且是免费的
3 楼 ray_linn 2010-09-19 14:09
怎么看就像....ADO.NET ?
2 楼 daxiong921 2010-09-19 14:05
Oracle要交钱,哈哈
1 楼 qiu768 2010-09-19 13:57
"dbcrawler 1.4下载版主要支持的数据库包括:Apache Derby,H2 Database,HSQLDB,IBM DB2,MySQL,PostgreSQL" 不支持Oracle?太搞了吧。。。。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 数据库系统—实体联系模型

    实体联系模型 数据库设计的六个阶段 需求分析阶段 概念结构设计阶段 逻辑结构设计阶段 数据库物理设计阶段 数据库实施阶段 数据库运行和维护阶段 实体联系模型用实体表示事务,用联系表示物体之间的联系 概念模型 概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言 基本概念 实体和实体型 实体表示现实世界中某一具体的事物,具有相同性质的实体组成了一个实体型,每个实体型要有一个名字,一般用名词表示。 每个实体有一组属

  • 数据库复习(4) 实体关系模型

    实体集(Entity Sets) 是实际存在的事物(可以是抽象的) 具有属性(attributes) 实体集是具有共同性质的同类实体的集合 实体集的属性类型划分 简单的和复合的(conposite,如名字等等) 单值的/多值的(如电话号码等) 直接的/派生的(可以由其他属性计算得来,如生日等) 关系集(待补充) E-R图 举行代表实体集,上方为名字,下方是属性,主键用下划线标出 菱形代表关系集 线段连接实体集和关系集 虚线连接一个关系集和它的描述属性 双线表示实体集对于关系集的全参与 双菱形表示

  • UML参考手册 第三部分  参 考 资 料 第13章 术 语 大 全 <五>

    UML参考手册  第三部分  参 考 资 料  第13章 术 语 大 全 94.复制(copy)交互中使用的一种流关系,目标对象成为源对象的一个副本,随后二者相互独立。见变成(become)。语义复制关系是一种流关系,它表示在交互中一个对象派生出另一个对象。它代表了制作副本的活动。复制流执行过后,两个独立对象的值可以独立的变化。交互中

  • 【图形学】谈谈噪声

    写在前面 很早就想学习和整理下噪声,稍微接触过图形学的人大概都听到过噪声,然后就会发现有各种噪声,Perlin噪声,Worley噪声,分形(fractal)噪声等等。尤其是Perlin噪声,一搜资料发现大家说的各不相同,更加不明所以。我也总是困惑,后来发现还是要相信wiki和paper。 这篇文章在于总结上面这些常见的噪声(即图形学中常见的程序噪声),它们是什么,怎...

  • UML结构体系简介

    一、UML的结构 UML有3种基本的构造块,分别是事物(元素)、关系和图。事物是UML中重要的组成部分。关系把事物紧密联系在一起。图是很多有相互相关的事物的组。 二、UML的事物 UML中的事物也称为建模元素,包括结构事物、动作事物、分组事物和注释事物。这些事物是UML模型中最基本的面向对象的构造块。 1.结构事物:结构事物在模型中属于最静态的部分,代表概念上等或...

  • 【闲谈】我为什么不想回答你的问题

    写在前面我很久没有在博客里写一些跟纯技术无关的东西了。今天想写这篇,一方面是因为好像我博客看的人越来越多了,一些人通过邮件、私信、QQ来问我问题,而回答某些问题的时候我真的很不想说话。。。一方面,我觉得作为一个程序员,我最爱抱怨的问题除了万恶的配置问题,就是这种向人请教问题时遇到的“尴尬”。“如何正确地提问“绝对是程序员必备技能,而也是很多人不在乎的一个技能。因为这个问题,虽然别人没有正面批评...

  • 第13章 术 语 大 全 (8)

    331.子状态(substate)作为复合状态一部分的一个状态。见复合状态(composite state)、并发子状态(concurrent substate)、互斥子状态(disjoint substate)。332.可替代性规则(substitutability principle)给定其类型声明为X的变量或者参数的一个定义,任何X后代的实例都可以用做实际值而不会违反声明和使用的语义,这就是

  • UML三个基本构造块之——九种图

    就像了解大脑必须要从神经构造下手一样。了解UML,也要从了解它的构造块开始。     UML有三个基本构造块,分别是事物,关系和图,搞清楚了这三块的内容,有助于我们更好的理解和使用UML,以下是关于UML中九种图的介绍。     UML中的九种图,分别是:用例图、类图、对象图、活动图、状态图、协作图、序列图、构件图、部署图。     1.类图(class diagram)

  • UML参考手册 第三部分  参 考 资 料 第13章 术 语 大 全 <四>

    UML参考手册  第三部分  参 考 资 料  第13章 术 语 大 全 75.构件(component)构件是指系统中可替换的物理部分,系统封装了实现以及提供了一组接口的实现。语义构件是指系统中的一个物理实现片段,包括软件代码(源代码,二进制代码,可执行代码)或者相应成分,例如脚本或命令行文件。有些构件带有身份标识,并有物理实体,包

  • Spring的编程式事务&&声明式事务&& 基于注解的声明式事务控制

    在Web项目中,可以使用ServletContextListener监听Web应用的启动,我们可以在Web应用启动时,就加载Spring的配置文件,创建应用上下文对象ApplicationContext,在将其存储到最大的域servletContext域中,这样就可以在任意位置从域中获得应用上下文ApplicationContext对象了。声明式事务:采用配置的方式来实现的事务控制,业务代码与事务代码实现解耦合,使用的AOP思想。事务管理器通过读取事务定义参数进行事务管理,然后会产生一系列的事务状态。

  • UML中如何描述系统的体系结构(三)

     The implementation view of a system encompasses the artifacts that are used to assemble and release the physical system. This view primarily addresses the configuration management of the system’

  • UML参考手册 第三部分  参 考 资 料 第13章 术 语 大 全 <六>

    UML参考手册  第三部分  参 考 资 料  第13章 术 语 大 全 138.激发(fire)激发一个转换。见运行至完成(run to ,ompletion)、触发(trigger)。语义当转换要求的事件发生时,如果满足监护条件,转换将执行其活动,活动状态改变。对象接收到事件后,如果状态机处于运行至完成这一步骤,则保存该事件。步骤

  • UML详解之基本元素-关系

    模型元素与模型元素之间的连接关系也是模型元素, 常见的关系有关联(association)、泛化(generalization)、 依赖(dependency)和聚合(aggregation),其中聚合是关 联的一种特殊形式。  关联:连接(connect)模型元素及链接(link)实例。  依赖:表示一个元素以某种方式依赖于另一种元素。  泛化:表示一般与特殊的关系,即“一般”元素是...

  • 【OpenGL】理解一些基本问题

    写在前面啦啦啦,搞了很久的Unity Shaders,越学越觉得基础知识很重要。学Unity Shader的时候,总会想,shader到底是什么呢?shader的pipeline是什么呢?它们是怎么工作的?有哪些限制?等等问题。但这些问题,Unity是不负责告诉你的。它专注于how,而不是what和why。想要深入理解一些问题,感觉还是要从GL或者DX学起。后面会学习GL龙书第八版~当然Uni...

  • UML--------三大结构

    刚一开始接UML,感觉迷迷糊糊的,有许多东西都弄不清楚,自己还是对UML先有个宏观把控在开始学吧!     一、UML概念:UML(Unified Modeling Language) 统一建模语言;是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。我的理解就是UML在面向对象的程序设计中告诉你怎么对模型画图。     二、

  • 第13章 术 语 大 全 (6)

     138.激发(fire)激发一个转换。见运行至完成(run to ,ompletion)、触发(trigger)。语义当转换要求的事件发生时,如果满足监护条件,转换将执行其活动,活动状态改变。对象接收到事件后,如果状态机处于运行至完成这一步骤,则保存该事件。步骤完成后由状态机处理这一事件。如果当前对象所处的状态含有转换,则相应转换被触发。如果是有多个源状态的复杂转换,则转换进行前所有源状态必

  • 第2章 模型的性质与目标

    本章将解释什么是模型,模型有何用途以及如何使用模型。本章还将解释模型的不同层次:理想的,部分的和基于工具的。2.1 什么是模型  模型是用某种工具对同类或其他工具的表达方式。模型从某一个建模观点出发,抓住事物最重要的方面而简化或忽略其他方面。工程、建筑和其他许多需要具有创造性的领域中都使用模型。  表达模型的工具要求便于使用。建筑模型可以是图纸上所绘的建筑图,也可以是用厚纸板制作的三维模型,还可以

  • 第5章 用 例 视 图

    5.1 概述  当用例视图在外部用户前出现时,它捕获到系统、子系统或类的行为。它将系统功能划分成对参与者(即系统的理想用户)有用的需求。而交互功能部分被称作用例。用例使用系统与一个或多个参与者之间的一系列消息来描述系统中的交互作用。参与者可以是人,也可以是外部计算机系统和外部进程。图5-1表述了一个电话目录销售的用例视图。此例是实际系统简化后的例子。图5-1 用例图5.2 参与者  参与者是与系统

  • 第13章 术 语 大 全 (7)

    216.多继承(multiple inheritance)泛化的一种语义变体,其中元素可以有多个父。这是U/NL 中的默认设置,在多数情况下是必须的,建模者也可以对使用的元素进行某种设置。对比:单继承。217.多重性(multiplicity)说明允许侯选值范围,如集合可以设定的大小。多重性说明可能用于关联端、组成类中的部分、消息的迭代次数和其他目的等。本质上讲,多重性是非负整数的一个子集(可能无

  • 第13章 术 语 大 全 (4)

    80.复合状态(composite state)包含并行(正交)或顺序(互斥的)子状态的状态。见复杂转换(complex transition) ,简单状态(simple state),状态(state)。语义组成状态可以使用"与"关系分解为并行子状态,或者通过"或"关系分解为互相排斥的互斥子状态。状态精化只能使用两种方法之一。其子状态还可以用两种方法之一进一步进行分解。如果一个顺序组成状态是活动

Global site tag (gtag.js) - Google Analytics