DBCrawler 使用

DBCrawler是一个轻量级的Java数据库结构爬虫工具,支持多种数据库,包括Apache Derby, H2, HSQLDB, IBM DB2, MySQL, PostgreSQL等。1.4版本新增对视图操作的支持。通过添加Maven依赖,如在pom.xml中配置dbcrawler的库和依赖,然后在代码中创建DBCrawler实例,连接数据库,即可获取数据库表结构信息,包括表名、主键、外键和列信息。" 130790784,7502292,解决Discuz安装非正版应用提示问题,"['PHP', 'Discuz', '社区论坛', '插件安装', '开发语言']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DBCrawler是一个纯java编写的轻量级面向数据库结构的爬虫工具.

最近,DBCrawler发布了其1.4版本,主要支持的数据库包括Apache Derby,H2 Database,HSQLDB,IBM DB2,MySQL,PostgreSQL,同时支持试图操作.其最大的特点就是可以无视数据库类型,轻易获取数据库表结构并以POJO方式返回给用户,使用实例:

1.加入maven库:

在你工程的pom文件中project下一级别加入库:

 

   <repositories>

   <repository>

    <id>dbcrawler-repo</id>

   <name>dbcrawler Maven2 Repository</name>

   <url>http://dbcrawler.googlecode.com/svn/repo</url>

   </repository>

    </repositories>

然后加入依赖:

 

 <!--dbcrawler-->

         <dependency>

     <groupId>com.avdheshyadav</groupId>

     <artifactId>dbcrawler</artifactId>

     <version>1.4</version>

  </dependency>

 

 

2.使用代码

 

package com.taobao.zhaopin.dal.dao;

 

import java.io.IOException;

import java.sql.Connection;

import java.sql.SQLException;

import java.util.Set;

 

import org.springframework.orm.ibatis.SqlMapClientTemplate;

import org.unitils.UnitilsJUnit3;

import org.unitils.spring.annotation.SpringApplicationContext;

import org.unitils.spring.annotation.SpringBean;

 

import com.avdheshyadav.dbcrawler.ConfigEnum;

import com.avdheshyadav.dbcrawler.DBCrawler;

import com.avdheshyadav.dbcrawler.DbCrawlerException;

import com.avdheshyadav.dbcrawler.dbmodel.ColumnSet;

import com.avdheshyadav.dbcrawler.dbmodel.DataBase;

import com.avdheshyadav.dbcrawler.dbmodel.ForeignKey;

import com.avdheshyadav.dbcrawler.dbmodel.PrimaryKey;

import com.avdheshyadav.dbcrawler.dbmodel.Schema;

import com.avdheshyadav.dbcrawler.dbmodel.SchemaSet;

import com.avdheshyadav.dbcrawler.dbmodel.Table;

import com.avdheshyadav.dbcrawler.dbmodel.TableSet;

@SpringApplicationContext({"classpath:persistence.xml"})

public class DBCrawlerTest  extends UnitilsJUnit3{

    @SpringBean("sqlMapClientTemplate")

private SqlMapClientTemplate sqlMapClientTemplate;

public void testCrawler() throws DbCrawlerException, SQLException{

       Connection connection = sqlMapClientTemplate.getSqlMapClient().getDataSource().getConnection();

DBCrawler dbCrawler = new DBCrawler(connection, ConfigEnum.MAXIMUM);

DataBase dataBase = dbCrawler.getDatabase();

System.out.println("productName :" + dataBase.getProductName() + " version:" + dataBase.getProductVersion());

SchemaSet schemaSet = dataBase.getSchemaSet();

Set<Schema> schemas = schemaSet.getSchemas();

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);

   }

}

}

 

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值