jdbc消耗太多内存

时间:2016-06-21 17:57:26

标签: java jdbc memory-leaks

我编写程序,我需要更新10000.查询是:

   for (Ticket ticket : existInBoth) {
        if (!ticket.isUpdatable() && !ticket.isDeleted()) continue;
        String query = String.format("update tickets SET vehicle_id = %d , price = %d , free = %d,time = '%s',date='%s',url='%s',deleted_at=NULL  WHERE unique_key = '%s'",
                ticket.getVehicle().getId(), ticket.getPrice(), ticket.getFree(), ticket.getTime(), ticket.getDate(), ticket.getUrl(), ticket.getUniqueKey());
        if (db.update(query) > 0)
            updatedDates.add(ticket.getDate());    

    }

和db.update

    @Override
public int update(String sql) {
    synchronized (Main.THREAD_GUARD) {
        int result = -1;
        Connection connection = open();
        try {
            Statement statement = connection.createStatement();
            result = statement.executeUpdate(sql);
            statement.close();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            close(connection);
        }
        return result;
    }
}

看起来真的很容易。但是当我运行它时,我发现这个更新需要大约300MB的内存。

我仔细关闭所有陈述和联系。

0 个答案:

没有答案