最近开发一个txt导入百万数据的例子,最初不想改框架,直接使用hibernate导入,搞了老半天都是因为数据量太大了,导致内存溢出,而且200万数据导20分钟都没导完,稳定性差,所以改成用了JDBC,因为我以前也是用spring JDBCtemplete的,对于我来说改用JDBC框架难度不高,不过技术经理说不需要把JDBC工具做完整,所以我就随便搞了个返回connection来了事了!最后倒入2百万数据大概就是2分钟左右,现在越来越觉得hibernate除了用起来方便点,没啥优势了。。。效率太低。
入正题,下面是我自己写的txt工具,其实也没啥特别难点,就是用了点设计的小技巧,灵感来自枯燥的基础“匿名类”。现在在设计的小细节上容易得到满足
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Date;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* txt读取工具
* @author sz
*
* create time:2013-1-31
*/
public abstract class TxtUtil {
private File file;
private String encoding = "GBK"; // 字符编码(可解决中文乱码问题 )
protected int rowTotal = 0;// 记录总行数
p

这篇博客分享了一个在处理百万级数据导入时,从txt文件读取并使用JDBC进行导入的经验。作者最初尝试使用Hibernate,但由于数据量大导致内存溢出和效率低下,最终转向JDBC实现。通过设计一个简单的匿名类来处理读取txt后的数据,实现了高效且低耦合的解决方案。整个过程耗时约2分钟,相比之下,之前的Hibernate方案耗时20分钟。作者提供了完整的代码下载链接以供参考。
最低0.47元/天 解锁文章
3412





