java导出数据库的全部表到excel
程序员文章站
2024-03-08 23:23:34
本文实例为大家分享了java将某个数据库的表全部导出到excel中的方法,供大家参考,具体内容如下
第一步:如何用poi操作excel
@test
pu...
本文实例为大家分享了java将某个数据库的表全部导出到excel中的方法,供大家参考,具体内容如下
第一步:如何用poi操作excel
@test public void createxls() throws exception{ //声明一个工作薄 hssfworkbook wb = new hssfworkbook(); //声明表 hssfsheet sheet = wb.createsheet("第一个表"); //声明行 hssfrow row = sheet.createrow(7); //声明列 hssfcell cel = row.createcell(3); //写入数据 cel.setcellvalue("你也好"); fileoutputstream fileout = new fileoutputstream("d:/a/b.xls"); wb.write(fileout); fileout.close(); }
第二步:导出指定数据库的所有表
分析:
1:某个数数据库有多少表,表名是什么?―――databasemetadate.getmetadate().gettables(null,null,null,new string[]{table}); - excel的文件名称。
2:对每一个表进行select * 操作。 - 每一个sheet的名称。
3:分析表结构,rs.getmetadate(); resultsetmedated
4:多个列,列名是什么. - 字段名就是sheet的第一行信息。
5:获取每一行的数据 – 放到sheet第一行以后。
@test public void export() throws exception{ //声明需要导出的数据库 string dbname = "focus"; //声明book hssfworkbook book = new hssfworkbook(); //获取connection,获取db的元数据 connection con = datasourceutils.getconn(); //声明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<string> tables = new arraylist<string>(); while(rs.next()){ string tablename = rs.getstring("table_name"); 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<cols;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<cols;i++){ string val = rs.getstring(i+1); //声明列 hssfcell cel = row.createcell(i); //放数据 cel.setcellvalue(val); } } } con.close(); book.write(new fileoutputstream("d:/a/"+dbname+".xls")); }
以上就是本文的全部内容,希望对大家的学习有所帮助。