部分代码如下:
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url,"root","123456");
if (con==null){
System.out.println("NULL");
}
String SQL = "Insert into test.test value (null,?,?,?,?,?,?,?,?,?,?,?,?,?);" ;
con.setAutoCommit(false);
PreparedStatement pst = (PreparedStatement) con.prepareStatement(SQL);
while((dbtxtcontent = br.readLine())!=null)
{
dbtxtcontent = dbtxtcontent.replaceAll("\'","");
String[] val = dbtxtcontent.split(",");
boolean flag = false;
try {
pst.setInt(1, k);
k++;
pst.setString(2, ""+val[0]);
pst.setString(3, ""+val[1]);
pst.setString(4, ""+val[2]);
pst.setString(5, ""+val[3]);
pst.setString(6, ""+val[4]);
pst.setString(7, ""+val[5]);
pst.setString(8, ""+val[6]);
pst.setString(9, ""+val[7]);
pst.setString(10, ""+val[8]);
pst.setString(11, ""+val[9]);
pst.setString(12, ""+val[10]);
pst.setString(13, ""+val[11]);
pst.addBatch();
}
catch (Exception e)
{
System.err.println("Error CODE:" + e);
}
line++;
}
pst.executeBatch();
con.commit();
pst.close();
con.close();
原程序目的是获取一数据文件内容,并将数据插入数据库。
现在的问题是,数据量较大,全部加入到addBatch,执行时提示内存溢出,
读一条插一条的方法不能在指定的时间内将数据插入数据库,
我想分多次插入,例如每次20000条,数据不是整万的,有零头,尝试了很多次,都没有找到方法
请问大神们该如何修改这段代码?????