`
hbcui1984
  • 浏览: 150024 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

偷懒工具设计之sql2Excel

    博客分类:
  • java
阅读更多

    今天在公司陪山东客户调试,远程登录,我在linux下什么工具都没有,用ssh登录服务器,直接用mysql查询数据库,提出记录中的所有汉字全是乱码。哎,可恶的公司,不让我用windows,要不我就可以用putty或者EMS了,我ft!
    甚是不爽之下,我决定自己写个工具了,把客户数据库中的数据全部提取并保存到Excel中,这样我不就可以一目了然了嘛,嘿嘿,好吧,那我就写一个工具吧。

第一部分就是谁都会的jdbc操作,连接数据库,提取数据集合。
    Connection con;
    Statement state;
    /** *//**初始化连接
     * @param serverIp
     * @param dataBase
     * @param userName
     * @param password
     * @throws ClassNotFoundException
     * @throws SQLException
     */
    public void init(String serverIp,String dataBase,String userName,String password) throws ClassNotFoundException, SQLException...{
        Class.forName("com.mysql.jdbc.Driver");
        //配置数据源
        String url="jdbc:mysql://"+serverIp+"/"+dataBase+"?useUnicode=true&characterEncoding=GB2312";
        con=DriverManager.getConnection(url,userName,password); 
    }
    /** *//**得到查询结果集
     * @param sql
     * @return
     * @throws SQLException
     */
    public ResultSet getResultSet(String sql) throws SQLException...{
        state = con.createStatement();
        ResultSet res = state.executeQuery(sql);
        return res;
    }
    /** *//**关闭连接
     * @throws SQLException
     */
    public void close() throws SQLException...{
        if(con!=null)
            con.close();
        if(state!=null)
            state.close();
    }


第二部分就是把ResultSet中的记录写入一个Excel文件
      操作Excel,我用的是jxl,不熟的同学可以参考:
http://www.iteye.com/topic/55844?page=1

    /** *//**将查询结果写入Excel文件中
     * @param rs
     * @param file
     * @throws SQLException
     */
    public void writeExcel(ResultSet rs,File file) throws SQLException...{
          WritableWorkbook wwb = null;
            try...{
                //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
                wwb = Workbook.createWorkbook(file);
            } catch (IOException e)...{
                e.printStackTrace();
            }
            if(wwb!=null)...{
                WritableSheet ws = wwb.createSheet("sheet1", 0);
                int i=0;
                while(rs.next())...{
                    Label label1 = new Label(0, i, rs.getString("id"));
                    Label label2 = new Label(1, i, rs.getString("category"));
                     try ...{
                        ws.addCell(label1);
                        ws.addCell(label2);
                    } catch (RowsExceededException e) ...{
                        e.printStackTrace();
                    } catch (WriteException e) ...{
                        e.printStackTrace();
                    }
                    i++;
                }    

                try ...{
                    //从内存中写入文件中
                    wwb.write();
                    //关闭资源,释放内存
                    wwb.close();
                } catch (IOException e) ...{
                    e.printStackTrace();
                } catch (WriteException e)...{
                    e.printStackTrace();
                }
            }
    }


测试程序:
        Sql2Excel se = new Sql2Excel();
        try ...{
            se.init("127.0.0.1","mydabase", "root", "1234");
            ResultSet rs = se.getResultSet("select id,category from xx ");
            se.writeExcel(rs, new File("/root/sql2excel.xls"));
            se.close();
        } catch (ClassNotFoundException e) ...{
            e.printStackTrace();
        } catch (SQLException e) ...{
            e.printStackTrace();
        }



    呵呵,比较简单吧,不过还是很有用的,其实那些数据库查询工具EMS,Mysql Query Browser之类的和这个差不多,掌握了原理,我们也可以自己开发查询工具,备份工具。
分享到:
评论

相关推荐

    《偷懒的技术:打造财务Excel达人》示例文档.rar

    《偷懒的技术:打造财务Excel达人》是一本旨在帮助财务工作者提升Excel技能的书籍,其示例文档提供了丰富的Excel使用技巧。在这个压缩包中,我们可以找到各种与财务工作相关的Excel应用实例,这些实例覆盖了数据分析...

    Excel导出SQL SlobII懒汉2

    至于“懒汉”,则形象地传达了工具设计的初衷——为那些追求效率、不想手动编写重复代码的程序员提供便利。 在描述部分,我们了解到这个工具是由一个自称“爱偷懒的程序员”编写的,它能够将Excel数据转换成SQL的...

    偷懒的技术:打造财务Excel达人》示例文档.rar

    在财务管理中,Excel是一款不可或缺的工具,其强大的计算能力、数据管理和分析功能使得它成为财务专业人士的首选。《偷懒的技术:打造财务Excel达人》示例文档提供了许多实用的Excel技巧,帮助财务人员提高工作效率...

    Excel2DB-Excel导入数据共通程序

    项目之余,发现很多项目都需要Excel导入导出的功能,每次重复代码的Coding以令我忍无可忍, 终于在一个"寂寞难耐"的周末,完成了一个Excel导入数据库(支持Sql Server 2000,2005; Access,Oracle未测试)的共通程序(可配置...

    SQLPrompt V7.2数据库代码提示插件

    SQLPrompt V7.2 Sql代码提示工具, 数据库是大家在项目开发中肯定会用到的,C#项目用的最多的就是微软自家的SQL Server了。不可否认,微软的Visual Studio开发平台很好用,很直观的体现就是智能提示。敲几个字符,...

    教师别错过DeepSeek,一个高效有温度的偷懒工具 .pdf

    教师别错过DeepSeek,一个高效有温度的偷懒工具。.pdf

    SQL SERVER版代码生成工具(2004版)

    本版本是04年当时开发项目时,为了节省工作量,开发的一个辅助工具...之所以添加了单一模式的是因为一些小心活动项目,就直接用这个代码来偷懒了。 其它的没什么特别说明的了,使用中遇到问题,可以随时和我联系。。。

    ExcelToHtmlTable转换算法:将Excel转换成Html表格并展示(项目源码+详细注释+项目截图)

    Excel2HtmlTable的主要功能就是把Excel的内容以表格的方式,展现在页面中。 Excel的多个Sheet对应页面的多个Tab选项卡。 转换算法的难点在于,如何处理行列合并,将Excel的行列合并模型转换成Html表格的行列合并模型...

    VB中调用Excel生成图表[总结].pdf

    2. 创建 Excel 实例 创建 Excel 实例可以使用 CreateObject 函数,例如:`Set x1 = CreateObject("Excel.Application")`。这将创建一个新的 Excel 实例。 3. 添加工作簿 在 Excel 实例中,可以添加工作簿,以便...

    图书管理系统ASP+SQLServer2000-适合课程设计

    图书管理系统,ASP+SQLServer2000 自己做的,做得很简单,适合要求不高的人。 这是数据库课程设计时做的 适合课程设计偷懒的人。 如果毕业设计的话,有点太简单了,不过可以在这基础上新增。

    Excel答疑汇集word版

    文档《偷懒的技术》读友群Excel答疑汇集.docx中包含了丰富的Excel使用技巧和解决方案,以下是一些关键知识点的概述: 1. 数据输入与格式化: - 快速填充:Excel中的快捷键Ctrl+D可以快速填充同一列或行的相同数据...

    课程设计基于Java实现的校园快递代拿系统源码+sql数据库+项目详细说明.zip

    课程设计基于Java实现的校园快递代拿系统源码+sql数据库+项目详细说明.zip 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、...

    试用EXCEL电子财务技术

    全面方便初出茅庐人员学习EXCEL电子表格制作与学习用商用环境的介绍与参考。

    偷懒的程序员

    在IT行业中,“偷懒”并不是指不负责任地逃避工作,而是指通过高效的工作方式、自动化工具及优化流程等手段来提高工作效率,减少重复劳动。本文将深入探讨如何成为一个聪明的“偷懒”程序员。 #### 一、利用现有...

    偷懒道具,分页工具

    不跳转页面分页工具,依赖于jQuery,默认样式依赖于bootstrap3.0,通过最大行数和显示 行数计算出分页总数,通过设置的样式结构决定前台展示出现的样式,目前存在两种展出模式,可通过定义扩展方式,增加展出样式。

    会计干货之财务工作常用Excel公式集锦及解析(第一季).doc

    在会计工作中,Excel是不可或缺的工具,特别是在处理财务数据时,掌握一些常用的Excel公式和技巧能大大提高工作效率。本文由梁志飞老师精心编辑,旨在分享财务工作中的Excel实用技巧。 一、按科目级次筛选 在财务...

    窗口置顶快捷隐藏小工具(偷懒神器)

    窗口置顶快捷隐藏小工具(偷懒神器),把视频或网页缩小后放到桌面一角,ctrl + Q 隐藏,Ctrl + E 显示,上班看片小工具

    各种EXCEL的操作,表格,拿来就可以用的excel资源

    2. **公式与函数**:Excel的核心功能之一就是计算,比如SUM求和,AVERAGE求平均值,COUNT计数,IF条件判断等。深入理解并灵活运用这些函数可以简化大量手动计算的工作。 3. **数据分析**:Excel提供了数据分析工具...

    用Excel做的五子棋

    以前在办公室偷懒时写的一个二人对战用的五子棋程序。用excel写的。用VBA实现的。

    你早该这么玩Excel 伍昊.

    *你是个表格“菜鸟”,对着一堆函数和技巧犯晕,觉得此生成为Excel高手无望? *你是个“表”哥或“表”姐,自认阅“表”无数,而且早已审“表”疲劳? *你是公司的Boss,经常拿着报表做决策,却没有发现表中有个...

Global site tag (gtag.js) - Google Analytics