Maison  >  Article  >  base de données  >  mysql-Eclipse用JAVA连接Mysql 插入大量数据报错 Java heap space

mysql-Eclipse用JAVA连接Mysql 插入大量数据报错 Java heap space

WBOY
WBOYoriginal
2016-06-06 09:44:431903parcourir

mysql大量数据java

public void Get_WayId_Ref_isWay() throws IOException
{

<code>    PreparedStatement ps = null;     Connection con=null;    BufferedReader br=new BufferedReader(new FileReader(Path.path_read_beijing));    StringBuffer s=null;    StringBuffer wayId=null;    StringBuffer isWay=new StringBuffer("false");    String regex_nd="\\d+";    //用匹配<way id string regex_id="(?<=id=\" try class.forname con="DriverManager.getConnection(url,user,pwd);" con.setautocommit int count="0;" batchcount="1;" while stringbuffer arraylist> tmp=new ArrayList<stringbuffer>();            //找出way类的信息            if(batchCount%100==0)            {                ps.clearBatch();            }            if(s.indexOf("<way>0)                {                  //获得每一组WayId                  Pattern p1=Pattern.compile(regex_id);                  Matcher m1=p1.matcher(s);                  if(m1.find())                  {                      wayId=new StringBuffer(m1.group());                  }                  while (s.indexOf("</way>") 0)                     {                         System.out.println("所在行数:"+count);                         Pattern p=Pattern.compile(regex_nd);                         Matcher m=p.matcher(s);                                if(m.find())                        {                            tmp.add(new StringBuffer(m.group()));                        }                     }                     //判断该way是否为道路                    if(s.indexOf("<tag k='\"highway\"")'>0||s.indexOf("<tag k='\"cycleway\"")'>0||s.indexOf("<tag k='\"bridge\"")'>0)                    {                        isWay=new StringBuffer("true");                    }                }                 for(int i=0;i<tmp.size if batchcount stringbuffer sql1="new" sql1.append into test_wayid values ps="con.prepareStatement(sql1.toString());" ps.addbatch></tmp.size></tag></tag></tag></stringbuffer></way></code>

ps=con.prepareStatement(sql1.toString());
ps.addBatch();

<code>                        }                        ps.executeBatch();                        if(batchCount%100==0)                        {                            con.commit();                        }                    }                }        }        con.commit();    } catch (Exception e) {        e.printStackTrace();        // TODO: handle exception    }finally{        try {            if(ps!=null) ps.close();            if(con!=null) con.close();        } catch (Exception e2) {            e2.printStackTrace();        }    }    }</code>

报的错误是:
java.sql.SQLException: java.lang.OutOfMemoryError: Java heap space
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:430)
at com.mysql.jdbc.PreparedStatement.getInstance(PreparedStatement.java:561)
at com.mysql.jdbc.ConnectionImpl.clientPrepareStatement(ConnectionImpl.java:1395)
at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4178)
at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4077)
at Wayid_To_Sql.Get_Map_Line_beta.Get_WayId_Ref_isWay(Get_Map_Line_beta.java:128)
at Wayid_To_Sql.Get_Map_Line_beta.main(Get_Map_Line_beta.java:35)

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn