Mysql
 sql >> Baza danych >  >> RDS >> Mysql

dlaczego mógłbym użyć metody first(), gdy mój typ zestawu wyników jest tylko do przodu?

Domyślnym zachowaniem MySQL Connector/J jest załadowanie całej zawartości ResultSet do pamięci, gdy tylko .executeQuery jest nazywany. Tak więc, mimo że nasz ResultSet to TYPE_FORWARD_ONLY programiści MySQL JDBC najwyraźniej postanowili być "mili" i pozwolić nam na użycie .first , .absolute , itp. w tym przypadku (ponieważ cały ResultSet jest w pamięci i łatwo dostępny), mimo że specyfikacja JDBC mówi

Pamiętaj jednak, że jeśli cały ResultSet nie ma gwarancji, że będzie w pamięci, np. jeśli użyjemy st.setFetchSize(Integer.MIN_VALUE) do "przesyłania strumieniowego" ResultSet gdy je przewijamy, MySQL Connector/J nie pozwoli nam używać niczego poza .next albo dostaniemy

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. Czy ktoś odkrył, że REGEX \b nie działa w MYSQL?

  2. Generuj dane dla zakresu dat, w tym tych, których nie ma w danych

  3. mysql wybierz daty z 30-dniowego zakresu

  4. Przykład użycia bind_result vs get_result

  5. Zapętlanie prostokątów svg z bazy danych