`

元数据分析以及导入数据库表中所有的数据到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();
}
}
   }
}
分享到:
评论

相关推荐

    NCV6.3-数据导入技术红皮书

    如果有出错的数据未能保存到数据库,可以根据日志中的错误信息修改该数据后进行二次导入,这样就可以节省大量手工录入的时间。目前的可支持的数据文件格式为Microsoft Office Excel的CSV格式,xlsx文件,xls文件

    金属材料标准的应用数据库MtrRvw

    升级时交付的生产数据库不包含保存生产数据的数据表,但包含从生产数据库导入生产数据的数据表的机制。 必要时通过导入备份的生产数据库的数据表,将当前生产数据库的生产数据还原。 1.3 演示数据库和支持文件的发布...

    matlab导入excel代码-QPID:第四纪古气候同位素数据库

    包含有关数据库样式源表以及数据和元数据属性的更多详细信息。 docs目录还包含数据表中引用的参考文献列表。 该目录包含用于编译数据库的代码。 使用数据 该数据库中包含的数据围绕着一个物理样本的思想,其主要数据...

    基础地理信息数据库管理系统.pdf

    数据输出设置(比例尺、图层、 9、元数据管理 元数据导入包括文本文件导入和EXCEL表导入; 元数据编辑功能 其中包含属性编辑功能项; 元数据输出功能 其中包含文本文件输出和XML格式输出等功能 项。 元数据查询功能 ...

    基础地理信息数据库管理系统.doc

    数据输出设置(比例尺、图层、 9、元数据管理 元数据导入包括文本文件导入和EXCEL表导入; 元数据编辑功能 其中包含属性编辑功能项; 元数据输出功能 其中包含文本文件输出和XML格式输出等功能项。 元数据查询功能 ...

    matlab导入excel代码-Project1:机器学习与数据挖掘实验

    matlab导入excel代码 Project1 机器学习与数据挖掘实验文件库 组员信息 李华辉(组长) 冼海俊 实验一 ###分工信息 李华辉:代码的实现部分+文档编写(80%) 冼海俊:代码的规范化+文档编写+作业提交(20%) 作业...

    sqlite 实用版

    * 支持ANSI,UTF8和UTF16数据编辑. * 可定制的数据类型映射. * 可执行分号分割的多条SQL语句. * 可视化查询设计器. ... * 可以导出数据库的元数据. * 支持数据库元数据查找 * 多语言支持(英语,简体中文,日语)

    Sqlite Developer v2.87.275 官方中文破解版.rar

    Sqlite Developer是SharpPlus出品的一款强大数据库管理软件。...-可以导出数据库的元数据. -支持数据库元数据查找 -可以中断长时间查询 -支持Sqlite可加载扩展及虚拟表 -多语言支持(英语,简体中文,日语)

    统计学实验报告.doc

    4、数据的文件的导入:Excel数据文件的导入是将别的软件形成的数据或数据库文件, 转换到Excel工作表中。这样,大家就不必要掌握那么多纷繁复杂的软件,方便提高工作 效率,也方便协同处理数据。Excel支持文本文件...

    sqlite开发工具

    SqliteDev 是一款比较实用的管理工具,有点类似与Mssql企业管理器。...可以导出数据库的元数据. 支持数据库元数据查找 可以中断长时间查询 支持Sqlite可加载扩展及虚拟表 多语言支持(英语,简体中文,日语)

    Sqlite.Developer.v3.7.7.488-Cracked

    强大的SQL编辑器 Sqlite Sql语法高亮 Sql编辑历史 Sql关键字自动完成 ...可以导出数据库的元数据. 支持数据库元数据查找 可以中断长时间查询 支持Sqlite可加载扩展及虚拟表 多语言支持(英语,简体中文,日语)

    中文版Excel.2007高级VBA编程宝典.part1

    本书将介绍如何定制Excel 用户窗体、开发新实用程序、用VBA 处理图表及数据透视表,以及创建事件处理应用程序。还将介绍如何使用VBA 子过程和函数过程、与其他应用程序轻松交互、构建用户友好的工具栏、菜单和帮助...

    matlab导入excel代码-ephys-matlab:Matlab电生理实验工具

    ephys-matlab的核心组件是使用元数据来跟踪已进行的实验/分析。 在许多方面,我们就像拥有一个数据库一样使用它,但是它不是一个!! 它只是一个excel文件,可以跟踪 自动跟踪的功能 日期 主题 目录 时间 标签 oe2...

    SqliteDEV 开发工具

    SqliteDEV非常好的管理工具,有点象Mssql企业管理器,支持多国语言 ...可以导出数据库的元数据. 支持数据库元数据查找 可以中断长时间查询 支持Sqlite可加载扩展及虚拟表 多语言支持(英语,简体中文,日语)

Global site tag (gtag.js) - Google Analytics