sql >> Databasteknik >  >> RDS >> Mysql

Spring Batch - JdbcCursorItemReader kastar OutOfMemoryError med stort MySQL-bord

Det finns ett problem i MySql JDBC-drivrutinen som gör att hela datauppsättningen laddas in i minnet oavsett vilka parametrar du har skickat till metoden för att skapa uttalanden. Se http://dev. mysql.com/doc/refman/5.0/en/connector-j-reference-implementation-notes.html för hur man öppnar en markör på rätt sätt.

Så här gör jag:

<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>



  1. Hur man binder datatabell till reportviewer körtid

  2. EXECUTE-behörigheten nekades för objektet 'xxxxxxx', databasen 'zzzzzzz', schemat 'dbo'

  3. Hur byter man ut strängen med en annan sträng och behåller fallet i php och mysql?

  4. Hur skapar man funktion i PL/SQL?