sql >> Databasteknik >  >> RDS >> Oracle

Spring JDBC-stöd och stor datauppsättning

Oracle JDBC-drivrutinen har korrekt stöd för setFetchSize() metod på java.sql.Statement , vilket låter dig kontrollera hur många rader föraren ska hämta på en gång.

Men RowMapper som används av Spring fungerar genom att läsa in varje rad i minnet och hämta RowMapper att översätta det till ett objekt och lagra varje rads objekt i en stor lista. Om din resultatuppsättning är enorm kommer den här listan att bli stor, oavsett hur JDBC hämtar raddata.

Om du behöver hantera stora resultatuppsättningar är RowMapper inte skalbar. Du kan överväga att använda RowCallbackHandler istället, tillsammans med motsvarande metoder på JdbcTemplate. RowCallbackHandler dikterar inte hur resultaten lagras, utan det är upp till dig att lagra dem.



  1. Hämta returvärdet från JDBC MSSQL

  2. Statiska funktioner och subs

  3. Hur justify_interval() fungerar i PostgreSQL

  4. Fix Msg 8116 "Argumentdatatypen varchar är ogiltig för argument 1 för session_context-funktionen" i SQL Server