2 votes

Comment arrêter le traitement des lignes dans Spring-JDBC ?

J'ai un consommateur qui peut dire qu'il ne veut pas traiter plus de données.

J'ai regardé les méthodes au printemps JdbcTemplate mais je ne vois aucun moyen d'informer Spring que je ne veux pas traiter d'autres lignes lorsque je suis en rappel.

Je pourrais lancer une exception, mais alors le jdbcTemplate.query(...) relancerait cette exception, ce qui est le comportement que je ne souhaite pas.

Existe-t-il un moyen de forcer l'arrêt du traitement des rangs sans provoquer d'exception ?

jdbc.query(sql, new RowCallbackHandler() {

  @Override
  public void processRow(ResultSet rs) throws SQLException
  {
    // TODO how to stop if I want to do it here?
  }}
);

0voto

juanlumn Points 2500

Jetez un coup d'œil :

jdbcTemplate.setFetchSize(intValue) : Donne au pilote JDBC une indication sur le nombre de lignes qui doivent être extraites de la base de données lorsque la commande des lignes supplémentaires sont nécessaires pour les objets ResultSet générés par ce Statement. Si la valeur spécifiée est zéro, l'indication est ignorée. La valeur par par défaut est zéro.

jdbcTemplate.setMaxRows(intValue) : Définit la limite du nombre maximal de lignes que tout objet ResultSet généré par cet objet Statement peut contenir. Si la limite est dépassée, les lignes excédentaires sont abandonnées en silence.

Je pense que jdbcTemplate.setMaxRows(intValue) pourrait être utile pour vos besoins.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X