• jdbc查询大量数据内存溢出的解决方法


    当使用jdbc从mysql中查询大量数据时,有可能会导致内存溢出。为了避免这种情况的发生可以对数据库进行分页查询。

    public static void main(String[] args){
        String url = "jdbc:mysql://localhost:3306/test";
        String username = "username";
        String password = "password";

        int data_num = 0;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection(url, username,
                    password);

            String sql = "SELECT ID,NAME FROM table_name limit ?,?";
            PreparedStatement pst = con.prepareStatement(sql);

            int pageSize = 10000;
            int pageId = 0;
            do {
                pst.setInt(1, pageId * pageSize);
                pst.setInt(2, pageSize);
                ResultSet rs = pst.executeQuery();

                boolean isEmpty = true;
                while (rs.next()) {
                     isEmpty = false;
                     id = rs.getLong(1);
                     name = rs.getString(2);
                     data_num++;
                }
                if (isEmpty) {
                    break;
                }
                pageId++;
            } while (true);
            con.close();
        } catch (SQLException se) {
            se.printStackTrace();
        }

    利用上述的代码可以对数据库表进行遍历处理。

  • 相关阅读:
    Django 07模型层—单表操作(增删改查)
    Django 05(模板-变量、过滤器、 标签 )
    Django 04(url与views相关内容)
    路由基础及反向解析
    Django项目基础
    Django框架导读
    异常处理
    Docker
    Docker基本概念
    Docker架构
  • 原文地址:https://www.cnblogs.com/glorey/p/3072673.html
Copyright © 2020-2023  润新知