今天在进行使用 jxl 进行 Excel 下载时,由于数据量大(4万多条接近5万条数据的下载),数据结构过于负责,存在大量大对象(虽然在对象每次用完都设置为null,但还是存在内存溢出问题),加上本地电脑内存不大(只有8G),导致下载数据时报堆内存溢出,下载失败. Exception data: java.lang.OutOfMemoryError at jxl.write.biff.MemoryDataOutput.write(MemoryDataOutput.java:72) at jxl.…
一.采坑背景 在最大数据分析的过程中,redis是被当做热数据的缓存库使用的,在某一天中,redis数据库热数据无法插入,此时数据量大概在100万左右,很是纠结,为什么不能插入?程序的错误,不可能,没有异常.redis插入数据超时,查看正常.难道是redis的配置问题,试着寻找解决方案,在网上找到了不少类似的问题,今天我们就踩一下! 二.探索问题 (一).redis内存异常 1.我们这里模拟一下当时异常的redis环境,现在数据库中有27条数据,大概内存占用2.4M左右,我们先把最大内存刻意设置…
在写定时任务时,对表数据进行批量操作,测试数据有10万条左右,在测试时发现跑着跑着出现内存溢出现象,最后发现创建的对象paramList 和tmBeanList没有被回收,经过资料查找,发现是循环内不要不断创建对象引用,不然有count次循环,内存中就有count份对象引用存在,就耗费内存了,所以每次循环完都得对对象引用进行销毁(设置为null):或直接在for循环体外声明对象,在循环体内创建对象的引用,这样内存中只有一份对象引用,每次new对象时,对象引用指向不同,但内存中只有一份. /**…
在之前使用Docker for Windows Installer.exe直接安装,通过docker-machine-driver-vmwareworkstation.exe实现docker和VM的共存,而不必安装VirtualBox,但在安装VM后,为避免每次开机都把VM的服务全部自动开启,我把它们都改为“手动”开启,所以开机时状态都是关闭状态. 但在win10关机重启系统后: 开启docker的实例,出现了"Waiting for SSH to be available...",一…
1.今天 mvn install 后把 jar 包部署到服务器上,执行 java -jar xx.jar 报 "no main manifest attribute,in xx.jar" 解决办法:在pom.xml中添加下面配置 <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <…
1.现象描述 (1)使用 Mybatis 在进行数据更新时,大部分时候update语句都需要通过动态SQL进行拼接.在其中,if标签中经常会有 xxx !='' 这种判断,若 number 类型的字段上传递的值为 0, 执行更新时会发现数据库中的数据并没有被更新成 0,这种异常现象不会报错,所以容易被忽视. <update id="update" parameterType="com.hrh.mybatis.bean.Person"> update ta…
想挖个坑督促自己练技术,有时候想到一个项目,大概想了一些要实现的功能,怎么实现.现在觉得自己差不多能完成QQ空间的主要功能了.准备立个牌坊,写一个类似功能的网站.并且把进度放到这里来. 初步计划实现以下功能 1.用户注册.登录.信息修改: 2.用户进行好友关注.推送好用动态: 3.发表日志.评论和评论回复: 4.发表说说.评论和回复: 5.留言板功能,相册功能: 我还是个菜鸟,贴出来希望和大家分享,有什么考虑不周和技术运用不恰到的地方大家说出来改进一下.以上有些功能我以前用jsp+servlet…
这几天遇到了一个问题,不幸开发的一个cs架构的工具,客户端开启后,内存一直在缓慢增长最终导致进程卡死,花了4天时间,终于爬出来了... 客户端通过timer定时器每30秒查询一次数据库以及一些业务逻辑操作,然后刷新界面的表格数据. 但是每次调用方法后,都会导致内存的增长,然后我将方法内部的变量在使用完之后手动设置为null 而且最后调用了gc 但是都没有什么效果, 最终还是会导致内存溢出,进程卡死.(估计是释放的速度,赶不上增长的速度...) 之后对定时部分的代码逐段进行了排查,最后发现是由于…
正如上篇文章(JXL封装不能使用static关键字问题)所说,在jxl导出Excel时候如果频繁使用到WritableCellFormat去设置单元格的样式,这个时候经常会出现两种情况: 1.报警告:Warning:  Maximum number of format records exceeded.  Using default format.虽然说程序员一般不看警告,but这个警告讨厌了,他会把你超过限制的格式恢复成默认格式.所以必须解决. 2.报异常:java.lang.ArrayInd…
/** * 把从数据库查询到的数据,写入电子表格 * * @throws Exception */ public void createXls() throws Exception { Dao dao = new Dao(); List<Inf> list = dao.getList();//得到数据 /*****************************************************/ OutputStream out = new FileOutputStream(&…
java中常用的解析Excel表格的工具一种是POI一种是JXL,POI功能强大,相比JXL稍嫌复杂,对表格样式的处理非常好:而JXL解析简单方便,对中文支持比较好. 工作中解析Excel内容上传到数据库常用JXL,而从数据库导出数据到Excel常用POI 下面是一个JXL解析Excel的一个简单案例 1.添加jxl的架包 下载地址:jxl.zip 2.解析Excel表格内容到一个集合 /** * 解析Excel表格 * @param ExcelURI 表格文件的路径 * @return 表格内…
项目中,有需求要使用JXL解析Excel文件. 解析Excel文件 我们先要将文件转化为数据流inputStream. 当inputStream很大的时候 会造成Java虚拟器内存不够 抛出内存溢出 当得到了文件的inputStream 我们就需要使用JXL解析Excel这个第三方工具包. Workbook book = Workbook.getWorkbook(inputStream); book.getNumberOfSheets(); Sheet sheet = book.getSheet…
jxl 只有excel基本的操作,代码操作比较方便,一般使用jxl就够了,对图片支持较好 poi功能比jxl强大但是比较吃内存,支持计算公式 具体参考链接    http://www.cnblogs.com/dashuai01/p/4778017.html JXl 创建 创建工作簿,就是一个Excel文档,参数最常用的就是文件输出流和文件,还有的很多... WritableWorkbook wwb = null; File file = new File("D:\\test.xls")…
工作中我们可能要把Excel文件的记录保存到数据库, 今天我用jxl读取Excel文件时遇到了合并格的问题,记录例如以下: 如Excel文件例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGg2NzY3NTk4Mjk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""> 读取出来的记录为: 由上图能够看出,…
这篇blog是介绍: 1. java中的poi技术读取Excel数据,然后保存到MySQL数据中. 2. jxl读写excel 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 项目结构: Excel中的测试数据: 数据库结构: 对应的SQL: 1 CREATE TABLE `student_info` ( 2 `id` int(11) NOT NULL AUTO_INCREMENT, 3 `no` varchar(20) DEFAULT NULL, 4 `…
import java.io.File; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class JxlExpExcel { /** * Jxl创建Excel文件 * @param args */ public static void main(String[] args) { // TODO Auto-…
package bboss; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; /** * * @author llh * */ public cl…
注意: 导出的后缀是xls可以直接打开,如果导出的后缀是xlsx打开报错,需要手动将名字改为xls才可以打开.也就是JXL不可以导出xlsx的excel. Jar包…
本次项目实践基于Spring+SpringMvc+MyBatis框架,简单实现了Excel模板导出.和Excel批量导入的功能.实现过程如下:. 1.maven导入所需jar包 <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> <version>2.6.12</version> </depend…
实现效果: 项目中使用JXL生成Excel,使生成的Excel可以让用户下载,如下图 一.生成Excel 二.提供下载 实现思路: 1.页面使用form表单提交方式(Ajax提交方式,我这里不行) 2.后台使用HttpServletResponse响应前台form表单的请求(我这里使用Servlet类响应,比较古老,^_^) 3. (1)生成的Excel表,先保存到服务器(JXL的write()方法) (2)DataInputStream以流的方式读取这个Excel表 (3)DataOutput…
最近delphi做一个小工具其中一个需求要把上W张照片存入数据库多媒体字段. 程序转到1,2W的时候即内在溢出了.最多一次转了3W张照片.很简单的一段代码后来仔细检查发现其中的坑. 下面放上代码 with DMConn.AdsEdit do begin Active := False; CommandText := 'SELECT ID, Data, Ext FROM Table where 1=2'; Active := True; end; with DMDst.UniQuery do be…
一.简介 jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一点.但jExcelAPI对中文支持非常好,API是纯Java的, 并不 依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件. 另外需要说明的是,这套API对图形和图表的支持很有限,而且 仅仅识别PNG格式. 二.简单的实现代码 Maven 依赖 <dependency> <gro…
将Excel中的数据读取到List<Map<String, Object>>集合中   package com.mvc.util;   import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Fie…
jxl(Java Excel API) 使用方法 [1]    构建Workbook对象, 只读Workbook对象  //   直接从本地文档创建Workbook  //   从输入流创建Workbook Workbook workbook = null;    try {      workbook = Workbook.getWorkbook(new File("D://output.xls"));    } catch (Exception e) {     e.printSt…
jxl导出excel,通常浏览器会提示excel导出完成情况及默认保存路径,或让用户自定义选择保存路径,要达到这种效果,有些要做下修改,如:response是jsp的内置对象,在jsp中使用时不用声明,但用在action中需要声明.代码如下: HttpServletResponse response = ServletActionContext.getResponse(); response.reset(); response.setContentType("<span class=&qu…
由于java流无法实现对Excel文件的读写操作,因此在项目中经常利用第三方开源的组件来实现.支持Excel文件操作的第三方开源组件主要有Apache的POI和开源社区的JXL. 总体来说,二者的区别是:JXL较为轻量级,如果是对Excel文件的简单操作,建议使用JXL:POI的功能相当强大,但同时处理问题也相当的繁琐. 1.准备工作 [必需]下载JXL的jar包:jxl.jar [非必需]JXL API  (提取密码:zgqj) 2.一些必要的说明 主要是对Excel结构的说明: Excel后…
jxl解析excel时,处理中文乱码问题 一般出现较多的问题是,当exce中包含了中文或特殊字符时,在解析时候就会出现乱码现象. 解决方法为: InputStream in = new FileInputStream(file); WorkbookSettings workbookSettings = new WorkbookSettings(); workbookSettings.setEncoding("GBK"); //关键代码,解决中文乱码 jxl.Workbook rwb =…
我用的是jxl导出excel,比较简单,最开始我是固定路径不能选择,很局限,后来改了,而且固定路径当把项目放在服务器上时,路径不可行. 在网上各位大神的帮助成功设置响应头,并且可选保存路径. 1.前端 //不是用的ajax,好像ajax不能成功//js $("#exportbaofei").click(function(){ window.location.href="${pageContext.request.contextPath}/ExportBaoFeiServlet…
1. 为什么可以设置为多个redo log ? (innodb_log_files_in_group,默认值和推荐值都是2,我们线上设的统一为4): 2. 什么条件下会触发刷脏?除了master_thread\强制checkpoint以外,这个频率是否可以调整: 3. recovery阶段,bp是否启用.如启用,是根据my.cnf设置,占用一个特别大的内存吗? 4. redo log recovery阶段是否并行,是否可以并行? 5. 记录格式看清一种,记录及恢复阶段: 6. 环状的redo l…
本来准备研究下mybatis源码执行流程的,就随意搭建了个项目,所有配置如下: 一切看似都是那么的正常,然而执行的时候:Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.nijunyang.mybatis.mapper.UserMapper.insertUser 1.发现org.apache.ibatis.sess…