Je suppose que vous utilisez le pilote JDBC Connector/J fourni par MySQL.
Vous dites explicitement à JDBC (et à MySQL) de diffuser les résultats ligne par ligne avec statement.setFetchSize(Integer.MIN_VALUE);
À partir de documents MYSQL :
Toute valeur autre que Integer.MIN_VALUE
car la taille de récupération est ignorée par MySQL et le comportement standard s'applique. L'ensemble des résultats sera récupéré par le pilote JDBC.
N'utilisez pas setFetchSize()
, ainsi le pilote JDBC utilisera la valeur par défaut (0
), ou définissez la valeur sur 0
explicitement. Utilisation de la valeur de 0
veillera également à ce que JDBC n'utilise pas les curseurs MySQL, ce qui peut se produire en fonction de vos versions et de votre configuration MySQL et Connector/J.