簡體   English   中英

在JAVA中將數據從文本文件傳輸到MySQL表時出現OutOfMemory錯誤

[英]OutOfMemory Error when transferring data from text file to MySQL table in JAVA

我有一個包含一些數據的文本文件。 當我嘗試將數據放入MySQL時,出現此錯誤“ java.lang.OutOfMemoryError: Java heap space ”。

我的代碼:

        try {
        // create a buffer reader
        java.io.BufferedReader br = new BufferedReader(new FileReader(f));
        // define line
        String line = null;
        // connect to the database
        connect = (Connection) DbConnection.establishConnection();
        while ((line = br.readLine()) != null) {
            // create preparedStatement
            preparedStatement = (PreparedStatement) connect.prepareStatement("insert into  IdentifiedExpertList values (?,?)");

            String[] rowData = line.split("\\s+", 2);
            String firstColumnData = rowData[0];
            String secondColumnData = null;
            if (rowData[1].trim().isEmpty()) {
                secondColumnData = null;
            } else {
                secondColumnData = rowData[1];
            }

            preparedStatement.setString(1, firstColumnData.trim());
            preparedStatement.setString(2, secondColumnData);
            preparedStatement.executeUpdate(); 

        }
        br.close();
        }
java.lang.OutOfMemoryError: Java heap space

表示您為JVM分配的內存不足以跟上將文件加載到內存所需的內存。

您可以使用-Xms-Xmx標志為JVM分配內存。 如果正在使用的內存非常少,請使用這些標志來增加內存並查看。

如果仍然遇到內存問題,那么另一種可能的解決方案是讀取文件的塊並將其上傳到DB,而不是一次讀取整個文件。

如果它們都不起作用,則意味着代碼中可能存在內存泄漏。 您需要修復它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM