zoukankan      html  css  js  c++  java
  • 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();
        }

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

  • 相关阅读:
    博客园界面部分优化
    jQuery获取Select选择的Text和 Value
    java开发各层对象含义
    接口与抽象类的区别(完整描述)
    Map相关知识总结
    html引用外部js和css
    RDD内存迭代原理(Resilient Distributed Datasets)---弹性分布式数据集
    spark高可用集群搭建及运行测试
    spark集群的简单测试和基础命令的使用
    spark集群搭建
  • 原文地址:https://www.cnblogs.com/glorey/p/3072673.html
Copyright © 2011-2022 走看看