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

tại sao tôi có thể sử dụng phương thức first () khi loại tập kết quả của tôi chỉ là chuyển tiếp?

Hành vi mặc định cho MySQL Connector / J là tải toàn bộ nội dung của ResultSet vào bộ nhớ ngay sau khi .executeQuery được gọi là. Vì vậy, mặc dù ResultSet của chúng tôi là TYPE_FORWARD_ONLY các nhà phát triển MySQL JDBC dường như đã quyết định trở nên "tốt đẹp" và cho phép chúng tôi sử dụng .first , .absolute , v.v. trong trường hợp đó (vì toàn bộ ResultSet có trong bộ nhớ và luôn sẵn sàng), mặc dù thông số JDBC cho biết

Tuy nhiên, lưu ý rằng nếu toàn bộ ResultSet không được đảm bảo nằm trong bộ nhớ, ví dụ:nếu chúng tôi sử dụng st.setFetchSize(Integer.MIN_VALUE) để "phát trực tiếp" ResultSet khi chúng ta cuộn qua nó, thì MySQL Connector / J sẽ không cho phép chúng ta sử dụng bất cứ thứ gì ngoài .next hoặc chúng tôi sẽ nhận được

com.mysql.jdbc.OperationNotSupportedException: Operation not supported for streaming result sets



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn hàng triệu bản ghi từ dịch vụ lưu trữ cục bộ sang lưu trữ Godaddy

  2. Cách nâng cấp MySQL 5.5 lên 5.6 trên Ubuntu 14.04

  3. Tại sao số hàng ước tính rất khác nhau trong kết quả phpmyadmin?

  4. java.io.EOFException là gì, Thông báo:Không thể đọc phản hồi từ máy chủ. Dự kiến ​​đọc 4 byte, đọc 0 byte

  5. Bảng không có khóa chính