java mysql内存溢出_java读取文本,插到mysql表中,出现问题。内存溢出。

import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;public class DBconn {int bufferSize=20*1024*1024;ArrayList column3string=new ArrayList();ArrayList column13string=new ArrayList();ArrayList test2col1 = new ArrayList();ArrayList test2col2 = new ArrayList();ArrayList test2col3 = new ArrayList();String driver = "com.mysql.jdbc.Driver";static String dbName="test";static String password="6983124ACD";static String userName="root";static String url="jdbc:mysql://localhost:3306/" + dbName;static String sql= "select * from workinfo";Connection conn=null;public static Connection getConnection() {String encoding = "utf-8";Connection conn = null;try {Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(url,userName,password);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return conn;}public void readFile(String filename) throws FileNotFoundException{File file = new File(filename);if (file.isFile() && file.exists()) {BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file));InputStreamReader inputStreamReader = new InputStreamReader(bufferedInputStream);BufferedReader bufferedReader = new BufferedReader(inputStreamReader, bufferSize);String lineTXT = null;PreparedStatement pstmt = null;Connection conn = getConnection();//String sql = "insert into workinfo(column3,column13) values(1,2)(2,3)(4,5)";String sql = "insert into workinfo(column3,column13) values(?,?)";try {while((lineTXT=bufferedReader.readLine())!=null){String[] temp = null;temp = lineTXT.split("  ");int count = 0;// 计数器pstmt = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);conn.setAutoCommit(false);// 设置数据手动提交,自己管理事务pstmt.setString(1, temp[0]);pstmt.setString(2, temp[0]);pstmt.addBatch();// 用PreparedStatement的批量处理if (count % 2000 == 0) {// 当增加了500个批处理的时候再提交pstmt.executeBatch();// 执行批处理}}conn.commit();pstmt.close();conn.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public void show(){System.out.println("This is string:");for (int i = 0; i 

java读取文本,插到mysql表中,出现问题。内存溢出。

标签:mysql   java

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://jinkuake.blog.51cto.com/8257504/1748841

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值