mysql导出excel 多个sheet_数据库多张表导出到excel

news/2024/7/5 6:10:30

数据库多张表导出到excel

public static void export() throws Exception{

//声明需要导出的数据库

String dbName = "hdcloude";

//声明book

HSSFWorkbook book = new HSSFWorkbook();

//获取Connection,获取db的元数据

//Connection con = DataSourceUtils.getConn();

Connection con =DriverManager.getConnection("jdbc:MySQL://127.0.0.1:3306", "root", "root");

//声明statemen

Statement st = con.createStatement();

//st.execute("use "+dbName);

DatabaseMetaData dmd = con.getMetaData();

//获取数据库有多少表

ResultSet rs = dmd.getTables(dbName,dbName,null,new String[]{"TABLE"});

//获取所有表名 - 就是一个sheet

List tables = new ArrayList();

while(rs.next()){

String tableName = rs.getString("TABLE_NAME");

System.out.println(tableName);

tables.add(tableName);

}

for(String tableName:tables){

HSSFSheet sheet = book.createSheet(tableName);

//声明sql

String sql = "select * from "+dbName+"."+tableName;

//查询数据

rs = st.executeQuery(sql);

//根据查询的结果,分析结果集的元数据

ResultSetMetaData rsmd = rs.getMetaData();

//获取这个查询有多少行

int cols = rsmd.getColumnCount();

//获取所有列名

//创建第一行

HSSFRow row = sheet.createRow(0);

for(int i=0;i

String colName = rsmd.getColumnName(i+1);

//创建一个新的列

HSSFCell cell = row.createCell(i);

//写入列名

cell.setCellValue(colName);

}

//遍历数据

int index = 1;

while(rs.next()){

row = sheet.createRow(index++);

//声明列

for(int i=0;i

String val = rs.getString(i+1);

//声明列

HSSFCell cel = row.createCell(i);

//放数据

cel.setCellValue(val);

}

}

}

con.close();

book.write(new FileOutputStream("\\"+dbName+".xls"));

}


http://www.niftyadmin.cn/n/2623559.html

相关文章

css grid 自动高度_面试押题之 --- CSS部分

本文章中的题来自写代码啦--2020面试押题,之前我总结过一篇HTML部分的面试押题,马上就要秋招了,所以我打算把面试题都总结一边然后开始投简历练练手,之后争取进大厂.必考:两种盒模型分别说一下。必考:如何垂直居中?必考:flex 怎么…

换中国电信卡显示无服务器,用5G或需要换SIM卡 中国电信给出了答案

套餐改成5G要不要换SIM卡?这个问题近日似乎有了准确的答案。5月13日,中国电信发布的一份白皮书指出,套餐该换用5G或需要换SIM卡。此前在2019年底时,三大运营商宣称使用5G服务,用户不换卡、不换号。但5月13日,中国电信…

flask实时显示服务器日志,使用WSGI服务器和flask应用程序进行日志记录

log – If given, an object with a write method to which request (access) logs will be written. If not given, defaults to sys.stderr. You may pass None to disable request logging. You may use a wrapper, around e.g., logging, to support objects that don’t i…

shiro判断用户是否登录_腾讯致歉QQ读取浏览器历史:判断是否恶意登录

来源 | 澎湃新闻1月17日,有论坛文章称,QQ会读取网页浏览器的历史记录,该内容后被链接至知乎提问上。1月18日,腾讯QQ在其知乎官方号上回答该提问时表示,近日,我们收到外部反馈称PC QQ扫描读取浏览器历史记录…

ajax触发,jQuery AJAX调用始终触发成功

我有这个登录表单,我在其中进行服务器端验证,现在我正在尝试进行jQuery验证。表格摘要:Login jQuery片段:(我使用bootstrap' login.js)submitHandler: function (form) {var un $(#usernameEmail).val();var p $…

mysql中的rman备份_RMAN 备份详解

一、数据库备份与RMAN备份的概念1.数据库完全备份:按归档模式分为归档和非归档归档模式打开状态,属于非一致性备份关闭状态,可以分为一致性和非一致性非归档模式打开状态,非一致性备份无效关闭状态,一致性备份&#xf…

性能优化之数据存储DOM编程

多读书多看报 数据存储 在javascript中,数据存储的位置会对代码整体性能产生重大的影响。数据存储共有4种方式:字面量、变量、数组、对象成员。 要理解变量的访问速度,就要理解作用域。由于局部变量处于作用域的起始位置,因此访问…

ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇:ASP.NET MVC全局观

摘要 本文对ASP.NET MVC的全局运行机理进行一个简要的介绍,以使得朋友们更好的理解后续文章。前言 在上一篇文章中,我们实现了第一个ASP.NET MVC页面。对于没有接触过这个框架的朋友来说,可能对有些地方会迷惑,所以这篇…