JXL操作excel总结(3)

来源:互联网 发布:假装情侣软件 编辑:程序博客网 时间:2024/06/14 21:47

/**

       * 清空数据库,为下次倒入数据库做准备

       */

       public void delAllData(){

              Connection conn=null;

              PreparedStatement ps=null;

              try{

                     Class.forName("com.mysql.jdbc.Driver");

                     conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=mingyuan_1986");

                     ps=conn.prepareStatement("delete from excel");

                     ps.execute();

              }catch(ClassNotFoundException e){

                     System.out.println("加载数据库驱动失败!");

              }catch(SQLException e){

                     e.printStackTrace();

                     System.out.println("删除失败");

              }finally{

                     try {

                            ps.close();

                            conn.close();

                     } catch (SQLException e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                            System.out.println("关闭连接失败!");

                     }

                    

              }

       }

       /**

       * @param args

       * @throws Exception

       */

       public static void main(String[] args) throws Exception {

              // TODO Auto-generated method stub

              ReadAndWriteExcel rwe = new ReadAndWriteExcel();

              rwe.readExcel();//读取excel数据,并将其写入到数据库中

              rwe.writeExcel();//读取数据库中的数据,并将其写入到excel

              rwe.delAllData();//删除数据库中的所有数据,为下次录入做准备

       }

}

1.       遇到的问题

a)         读取excel文件失败:不可识别的OLE

解决方案是将原来的数据拷贝到一个新建的excel文件中即可,问题产生的原因网上有两种说法:1.excel版本和jxl不兼容;2.excel有宏或者什么东西限制了jxl读取。

b)        读取数据库速度过慢

问题产生的原因是表中数据量过大(1205191条之多)。解决办法是对每个字段均建立索引:

Create index idx_time on excel(time);

Create index idx_location on excel(location);

Create index ind_data on excel(data);

这样以来从过去执行检索需要11秒时间降低到现在的3.8秒,执行速度大大加快。

c)         Jvm内存用尽

在执行填充excel的时候产生jvm耗尽的情况,最开始是想找jxl中的解决方案,比如说是分批写入,可是jxl不提供这样的方法。于是尝试修改了jvm的启动参数,如图三所示。


原创粉丝点击