`

元数据分析以及导入数据库表中所有的数据到excel

 
阅读更多
package com.cgm.util;

import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.jsp.tagext.TryCatchFinally;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.junit.Test;


/**
* 元数据分析
* @author Administrator
*
*/
public class TestMetaData {
/*
元数据,是指仅拥有Connection一个对象的情况下,分析得出数据库的所有信息。
DataBaseMetadate  - 说明数据库的信息。
ResultSetMetadate - 说明数据结果的类型信息的。核心。
如果要进行元数据分析,就必须要使用statement,preparedstatement.
     */

@Test
   public void testExport(){
   Connection conn=null;
   try {
conn=Conutils.getCon();
DatabaseMetaData metaData=conn.getMetaData();
String dbName = metaData.getDatabaseProductName();//数据库名称
System.err.println(dbName);
System.err.println("数据库中有多少表:");
ResultSet rs2 = metaData.getTables(null,null,null,new String[]{"TABLE"});
List<String> tables = new ArrayList<String>();
//声明book
HSSFWorkbook book = new HSSFWorkbook();
Statement st = conn.createStatement();  
while(rs2.next()){
String tableName = rs2.getString("TABLE_NAME");
tables.add(tableName);
}
for(String tableName:tables){
HSSFSheet sheet = book.createSheet(tableName);
//声明sql
String sql = "select * from "+dbName+"."+tableName;
//查询数据
rs2 = st.executeQuery(sql);
//根据查询的结果,分析结果集的元数据
ResultSetMetaData rsmd = rs2.getMetaData();
//获取这个查询有多少行
int cols = rsmd.getColumnCount();
//获取所有列名
//创建第一行
HSSFRow row = sheet.createRow(0);
for(int i=0;i<cols;i++){
String colName = rsmd.getColumnName(i+1);
//创建一个新的列
HSSFCell cell = row.createCell(i);
//写入列名
cell.setCellValue(colName);
}
//遍历数据
int index = 1;
while(rs2.next()){
row = sheet.createRow(index++);
//声明列
for(int i=0;i<cols;i++){
String val = rs2.getString(i+1);
//声明列
HSSFCell cel = row.createCell(i);
//放数据
cel.setCellValue(val);
}
}
}
conn.close();
book.write(new FileOutputStream("d:/a/"+dbName+".xls"));
/**
while(rs2.next()){
String tableName = rs2.getString("TABLE_NAME");
System.err.println(tableName);
} */
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
conn.setAutoCommit(true);
conn.close();   //close变成了还链接
} catch (Exception e2) {
e2.printStackTrace();
}
}
   }
}
分享到:
评论

相关推荐

    DELPHI 从EXCEL导入到数据库

    标题中的"DELPHI 从EXCEL导入到数据库"是一个关于使用Delphi编程语言将Excel电子表格中的数据导入到数据库的应用实例。这个话题涉及到多个IT领域的知识点,包括Delphi编程、Excel文件处理以及数据库交互。 Delphi是...

    如何操作Excel读取数据导入DB2数据库

    为了解决这个问题,我们可以考虑实现一个通用转换类,例如使用Java中的反射机制来动态读取Excel文件的元数据,并根据元数据生成对应的SQL语句来将Excel数据导入到数据库中。 Excel读取数据导入DB2数据库需要使用POI...

    一个通用从数据库导出excel、excel导入数据库组件所用到的jar包

    这个工具可以方便地将数据库中的数据导出为Excel格式,同时也可以将Excel文件中的数据导入到数据库中。这在数据处理、数据分析或系统迁移等场景中非常实用。 描述进一步明确了这是一个Java项目,包含了执行数据库到...

    Oracle数据库表结构导出工具Excel

    在这个Excel文件中,你可以看到每个表的名称、字段名、数据类型、长度、是否为主键、外键信息以及其他元数据。这使得用户可以方便地查看和编辑这些信息,或者将它们导入到其他数据处理工具中。 总结来说,"Oracle...

    导出数据库表结构(excel)程序

    通过将表结构导出到Excel,我们可以更直观地查看这些信息,比如用不同的颜色或样式高亮显示主键字段,或者在Excel中使用公式和图表进行进一步的数据分析。 "导出"操作通常涉及SQL查询,这些查询从数据库中提取所需...

    织梦dedecms批量导入excel表文章内容插件

    1. 准备数据:在Excel中编辑文章信息,确保所有必填字段完整。 2. 下载并安装插件:从可靠来源获取织梦DedeCMS批量导入Excel插件,并按照官方文档或说明安装到你的DedeCMS系统中。 3. 设置权限:确保插件具有读取和...

    ssm通过POI技术把excel数据导入mysql

    2. **数据转换**:将Excel中的数据转换为Java对象,这通常是一个自定义的实体类,比如`Student`,包含对应Excel列名的属性。创建一个`List&lt;Student&gt;`来存储所有行的数据。 3. **SSM整合**:在SSM配置中,确保...

    数据库内容导入到Excel jxl.jar包

    数据库内容导入到Excel是数据处理中的常见操作,特别是在数据分析、报表生成或数据迁移时。这里我们关注的是使用Java的一个库——jxl.jar,它允许我们方便地读取和写入Excel文件。jxl库是一个非常实用的工具,尤其...

    java实现导出oarcle表结构到excel

    在Java编程环境中,将Oracle数据库的表结构导出到Excel是一种常见的需求,特别是在数据库管理和数据分析时。这个场景可以通过两个核心类来实现:`TableStructureToExcel.java`和`ConnectionOracle.java`。这两个类...

    普元导入导出用于Excel导入导出

    1. **数据导入导出**: 这是系统与用户间交互的重要方式,允许用户通过Excel这样的工具来编辑和管理数据,然后将这些更改同步到数据库中,或者反之,将数据库中的数据导出到Excel以便分析或报告。这种方式提高了工作...

    VB Excel数据导入SQLServer

    在本文中,VB被用来实现Excel数据导入SQL Server数据库的功能,这是数据迁移和整合过程中的常见需求。以下是对三种方法的详细解释: 1. OpenRowSet方法: OpenRowSet方法允许直接从数据源(例如Excel文件)创建一...

    多功能通用Excel导入导出数据

    1. **Excel导入导出**:工具的核心功能,支持读取Excel文件到程序中处理,以及将处理结果写回Excel。 2. **通用**:意味着该工具对多种Excel格式(如XLS、XLSX)兼容,且适用于多种业务场景。 3. **简明通用**:设计...

    vb excel导入sql

    在VB(Visual Basic)编程环境中,常常需要处理与Excel和SQL Server的数据交互,例如将Excel数据导入到SQL Server数据库中。这个"vb excel导入sql"的项目就是一个典型的例子,它展示了如何利用VB来实现这样的功能。...

    利用kettle的api运用Java代码完成数据转换到excel和数据库源码

    可以使用 TableInputMeta 和 TableOutputMeta 对象来描述输入和输出表的元数据。然后,使用 TransHopMeta 对象来描述转换步骤之间的关系。 使用 Kettle 的 API 进行数据转换的优点是可以高效地处理大规模数据,并且...

    Excel文件的导入(异步线程)

    Excel文件(.xlsx格式)本质上是基于Open XML标准的XML文档集合,包含多个工作表(子表)和元数据。工作表中的数据以行和列的形式存储,每个单元格可以包含文本、数字、日期、公式等类型的数据。 导入Excel文件通常...

    数据库文件-植物大全数据集

    通过结合SQL进行复杂查询,JSON实现数据交换,CSV进行数据导入导出,以及XLSX提供直观的表格展示,这个数据集提供了一整套的工具,满足了从数据管理到数据分析再到结果展示的全方位需求。利用这些文件,我们可以深入...

    Excel 数据导入、导出 工具类 源码

    在Java编程领域,Excel数据处理是一项常见的任务,特别是在数据分析、报表生成或数据交换等场景中。本主题聚焦于一个名为"Excel数据导入、导出工具类"的源码,它利用了Java的反射机制来实现高效且灵活的功能。以下是...

    excel导入动态校验,自定义注解动态校验

    首先,Excel导入动态校验是指在将Excel数据导入到系统或数据库时,对数据进行实时检查的过程。这一步骤确保了导入的数据符合预设的规则和格式,从而防止错误数据的引入。动态校验的关键在于灵活性,它可以适应不同的...

    jbpm数据库数据,导入即可使用

    导入的数据库数据中可能就包含了这些流程定义的元数据,以便系统能够识别并执行相应的流程。 任务实例(Task Instance)是流程执行过程中的具体工作单元,它们对应于流程图中的各个任务节点。每个任务实例都包含了...

    Excel_VBA与数据库(Access)整合笔记

    从获取所有表的名称和类型到获取字段信息,这些实例展示了如何通过不同的技术获取数据库的元数据。了解数据库的结构对于开发和维护应用程序而言非常关键。 #### 四、数据导入和导出 将数据库记录导入Excel工作表是...

Global site tag (gtag.js) - Google Analytics