package com.cn.peitest.connectDatabase;

import java.io.File;
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
/**
* 连接数据库查询 将查询结果写入exce文件中
* @author Pei
*
*/
public class WritterToExcel {
public static void main(String[] args) {
//连接数据库
//声明
Connection con;
//驱动程序名称
String driver="com.mysql.jdbc.Driver";
//路径
String url="jdbc:mysql://localhost:3306/peixian?serverTimezone=UTC";
//用户名
String name="root";
//密码
String password="123456";
try {
//加载驱动程序
Class.forName(driver);
con=DriverManager.getConnection(url,name,password);
if(!con.isClosed()) {
System.out.println("\n\t\t成功以 " + name + " 身份连接到数据库!!!");
}
// 2.创建statement类对象,用来执行SQL语句!!
Statement st=con.createStatement();
String sql="select * from pei_user_baseinf";
// 3.ResultSet类,用来存放获取的结果集!!
ResultSet rs=st.executeQuery(sql);
ResultSetMetaData rsd=rs.getMetaData();
int count=rsd.getColumnCount();
System.out.println(rs);
List<Map<String,Object>>list=new ArrayList<Map<String,Object>>();
while(rs.next()){
Map<String,Object>map=new HashMap<String,Object>();
for(int i=1;i<=count;i++) {
map.put(rsd.getColumnName(i), rs.getObject(i));
}
list.add(map);
}
System.out.println("list======"+list);
excelOut(list); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} //将数据导出到Excel
public static void excelOut(List<Map<String, Object>> list2) {
List<UserBaseinf>list=new ArrayList<UserBaseinf>();
for(Map<String,Object>map:list2) {
UserBaseinf userBaseinf=JSONObject.parseObject(JSONObject.toJSONString(map), UserBaseinf.class);
list.add(userBaseinf);
}
WritableWorkbook bWorkbook = null;
try {
// 创建Excel对象
bWorkbook = Workbook.createWorkbook(new File("D:/book.xls"));
// 通过Excel对象创建一个选项卡对象
WritableSheet sheet = bWorkbook.createSheet("sheet1", 0);
//使用循环将数据读出
for (int i =0; i < list.size(); i++) {
UserBaseinf book=list.get(i);
Class cls = book.getClass();
Field[] fields = cls.getDeclaredFields();
for(int j=0; j<fields.length; j++){
Field f = fields[j];
f.setAccessible(true);
System.out.println("属性名:" + f.getName() + " 属性值:" + f.get(book));
Label label=new Label(j,i,String.valueOf(f.get(book)));//j控制行,i控制列
sheet.addCell(label);
} } // 创建一个单元格对象,第一个为列,第二个为行,第三个为值
Label label = new Label(0, 2, "test");
// 将创建好的单元格放入选项卡中
//sheet.addCell(label);
// 写如目标路径
bWorkbook.write(); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
bWorkbook.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} } }

  

//实体类
package com.cn.peitest.connectDatabase; import java.io.Serializable; public class UserBaseinf implements Serializable { /**
*
*/
private static final long serialVersionUID = 1L;
private String phone_no;
private String pass_word;
private String company_name;
private String user_addres;
private String sex;
private String user_name;
private String register_time;
private String approval_status;
public String getPhone_no() {
return phone_no;
}
public void setPhone_no(String phone_no) {
this.phone_no = phone_no;
}
public String getPass_word() {
return pass_word;
}
public void setPass_word(String pass_word) {
this.pass_word = pass_word;
}
public String getCompany_name() {
return company_name;
}
public void setCompany_name(String company_name) {
this.company_name = company_name;
}
public String getUser_addres() {
return user_addres;
}
public void setUser_addres(String user_addres) {
this.user_addres = user_addres;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getRegister_time() {
return register_time;
}
public void setRegister_time(String register_time) {
this.register_time = register_time;
}
public String getApproval_status() {
return approval_status;
}
public void setApproval_status(String approval_status) {
this.approval_status = approval_status;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
@Override
public String toString() {
return "UserBaseinf [phone_no=" + phone_no + ", pass_word=" + pass_word + ", company_name=" + company_name
+ ", user_addres=" + user_addres + ", sex=" + sex + ", user_name=" + user_name + ", register_time="
+ register_time + ", approval_status=" + approval_status + "]";
} }

  

//pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.cn</groupId>
<artifactId>peitest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>peitest</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.directory.studio</groupId>
<artifactId>org.apache.commons.codec</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.54</version>
</dependency> </dependencies> </project>

  

连接数据库查询 将查询结果写入exce文件中的更多相关文章

  1. Java基础之序列化对象——将对象写入到文件中(SerializeObjects)

    控制台程序. 首先定义一个含有任意不同数据类型域的可序列化类: import java.io.Serializable; public class Junk implements Serializab ...

  2. Java基础之写文件——将多个字符串写入到文件中(WriteProverbs)

    控制台程序,将一系列有用的格言写入到文件中. 本例使用通道把不同长度的字符串写入到文件中,为了方便从文件中恢复字符串,将每个字符串的长度写入到文件中紧靠字符串本身前面的位置,这可以告知在读取字符串之前 ...

  3. PHP将数据写入指定文件中

    首先创建一个空的txt文件,这里我们创建了一个1.txt的空文件. 第一种方法:fwrite函数 <?php $file=fopen('1.txt','rb+'); var_dump(fwrit ...

  4. 通俗易懂,C#如何安全、高效地玩转任何种类的内存之Span的脾气秉性(二)。 异步委托 微信小程序支付证书及SSL证书使用 SqlServer无备份下误删数据恢复 把list集合的内容写入到Xml中,通过XmlDocument方式写入Xml文件中 通过XDocument方式把List写入Xml文件

    通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的脾气秉性(二).   前言 读完上篇<通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的本质(一).>,相信大家对sp ...

  5. Python:将爬取的网页数据写入Excel文件中

    Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取到的网页数据的 ...

  6. 将对象以json格式写入到文件中

    将 list 对象以json格式写入到文件中 try { ObjectMapper mapper = new ObjectMapper(); String value = mapper.writeVa ...

  7. 生成大量插入语句,并将语句写入txt文件中

    import java.io.*; /** * Created by czz on 2019/9/23. */ public class TTest { /** * 生成大量插入语句,并将语句写入tx ...

  8. c#用log4Net将日志写入到Oracle数据库,并写入到文件中

    原文:c#用log4Net将日志写入到Oracle数据库,并写入到文件中 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https:/ ...

  9. shell脚本 在后台执行de 命令 >> 文件 2>&1 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

    命令 >> 文件 2>&1或命令 &>> 文件 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) # ll >>aaa 2> ...

随机推荐

  1. dubbo 扩展点里自动包装

    在看protrocol扩展点时,发现很费解的一点:当前invoker的url是register协议,在export的时候都会从qos->lister->filer这3个包装类开始,看了一下 ...

  2. H3CNE(教程)

    培训机构提供的ppt,可能也是来自于官方提供,涉及到H3CNE认证考试中的全部知识点,学真技术还得看这个.包括帧中继,哪怕是淘汰了十多年了. https://huxiaoyao.lanzous.com ...

  3. apply 、call 以及 bind 的使用和区别

    一.被apply和call调用的函数中没有传递参数 (一)不传参数 结果: (二)传递 null 结果: 总结: 1.当使用 apply和 call去调用函数并且没有传递参数时,前提这个函数中也没有传 ...

  4. C++/Java小白解Leetcode题,发现了知识盲区……

    一.初见LeetCode 大一时候学习C++,根据课程一直在PTA平台做题目,数据结构和算法的作业题目也是在PTA.后来发现牛客网学习资源也很丰富,孤陋寡闻,前几个月在知道LeetCode这个平台,跟 ...

  5. Gradle DSL method not found: 'google()'

    报错信息如下:Gradle DSL method not found: 'google()'Possible causes:<ul><li>The project 'JustT ...

  6. IdentityServer4系列 | 快速搭建简易项目

    一 .前言 从上一篇关于 常见术语说明中,主要是对IdentityServer4的说明,以及其中涉及常见的术语的表述说明,包括对身份认证服务器.用户.客户端.资源以及各个令牌等进行对比区别说明. 而在 ...

  7. idea:如果String 跟System该怎么解决

    这个问题还是比较简单的,但有很多小白不知道,我也是刚刚才遇到查了一些资料才知道的 接下来这里就是需要配置你的SDK,所以请你点击右上角的图标,进行配置SDK jdk下载地址:https://www.o ...

  8. PyQt学习随笔:QTableWidgetItem项的setSizeHint()方法的作用

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidgetItem项的方法setSizeHint用于设置项的sizeHint属性,Qt ...

  9. 推荐系统实践 0x0e LS-PLM

    在之前介绍的几个模型中,存在这些问题: LR不能捕捉非线性,只能进行一次的回归预测 GBDT+LR虽然能够产生非线性特征组合,但是树模型不适用于超高维稀疏数据 FM利用二阶信息来产生变量之间的相关性, ...

  10. 七、git学习之——使用GitHub、自定义Git、

    原文来自 一.使用GitHub 我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的.其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人 ...