Có một sự cố trong trình điều khiển MySql JDBC gây ra việc tải toàn bộ tập dữ liệu vào bộ nhớ bất kể các tham số bạn đã chuyển cho phương thức tạo câu lệnh. Xem http:// dev. mysql.com/doc/refman/5.0/en/connector-j-reference-implementation-notes.html để biết cách mở con trỏ đúng cách.
Đây là cách tôi làm điều đó:
<bean class="org.springframework.batch.item.database.JdbcCursorItemReader">
<property name="verifyCursorPosition" value="false" />
<property name="dataSource" ref="remoteDataSource" />
<property name="rowMapper">
<bean class="org.springframework.jdbc.core.SingleColumnRowMapper" />
</property>
<property name="fetchSize">
<util:constant static-field="java.lang.Integer.MIN_VALUE" />
</property>
<property name="sql">
<value>SELECT foo, bar FROM baz</value>
</property>
</bean>