Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Xử lý các bản ghi lớn trong một ứng dụng Java EE

Đặt cược tốt nhất của bạn là không lưu trữ dữ liệu trong bộ nhớ của Java theo bất kỳ cách nào, nhưng chỉ cần ghi dữ liệu thu được vào phản hồi ngay lập tức khi dữ liệu đi vào. Bạn cũng cần định cấu hình trình điều khiển MySQL JDBC để phân phát tập kết quả theo từng hàng của Statement#setFetchSize() theo tài liệu trình điều khiển MySQL JDBC , nếu không, nó sẽ lưu toàn bộ nội dung vào bộ nhớ.

Giả sử bạn đã quen thuộc với Servlets, đây là một ví dụ khởi động có tính đến tất cả điều đó:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/plain");
    response.setHeader("Content-Disposition", "attachment;filename=numbers.txt"); // Force download popup.

    Connection connection = null;
    Statement statement = null;
    ResultSet resultSet = null;
    Writer writer = response.getWriter();

    try {
        connection = database.getConnection();
        statement = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
        statement.setFetchSize(Integer.MIN_VALUE);
        resultSet = statement.executeQuery("SELECT number FROM phonenumbers");

        while (resultSet.next()) {
            writer.write(resultSet.getString("number"));
            if (!resultSet.isLast()) {
                writer.write(",");
            }
        }
    } catch (SQLException e) {
        throw new ServletException("Query failed!", e);
    } finally { 
        if (resultSet != null) try { resultSet.close; } catch (SQLException logOrIgnore) {}
        if (statement != null) try { statement.close; } catch (SQLException logOrIgnore) {}
        if (connection != null) try { connection.close; } catch (SQLException logOrIgnore) {}
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhập tệp .frm và .opt vào MySQL

  2. thời gian thực hiện mysql

  3. cập nhật các hàng thay vì tạo cơ sở dữ liệu mục nhập mới android

  4. Làm cách nào để ánh xạ một ngày Java thành DATETIME trong mysql (theo mặc định là TIMESTAMP của nó) với các chú thích Hibernate

  5. Có cách nào đơn giản hơn để đạt được phong cách nhắn tin của người dùng này không?