2013-06-18 2 views
0

J'ai une exigence deComment sélectionner/insertion en utilisant Spring Integration

  • Select * from utilisateur où id =: id

  • Insérer dans la table UserDump (< toutes les colonnes de la table utilisateur>, processedDate) valeurs (< toutes les colonnes de la table utilisateur>, getDate)

Ce que je l'ai fait: -

  1. J'ai un < int-jdbc: inbound-channel-adapter> que j'utilise pour l'instruction select.

  2. J'ai un Transformer qui prend la sortie (Liste < Carte> resultset) et met à jour mon modèle.

  3. J'ai un activateur qui accepte la sortie de mon Transformer et l'insère dans ma table UserDump. Les valeurs proviennent du modèle mis à jour plus tôt.

Mon programme fonctionne bien comme prévu, mais

  1. Comment mettre à jour "id" dans ma déclaration param select. Actuellement j'ai dur codé pour tester la fonctionnalité.

  2. Mon programme s'exécute simplement indéfiniment. Ne pas arrêter. c'est-à-dire une fois l'insertion terminée, elle devrait s'arrêter toute seule.

  3. Je sais, < poller> est quelque chose que je dois avoir dans mon fichier XML, mais je veux l'exécuter à la demande. Pas comme après chaque intervalle de temps fixe.

Pas le code exact mais la direction suffirait.

Répondre

1

Si votre application est simplement de déplacer des données d'une source à destination, je vous suggère de jeter un oeil à Spring Batch. C'est une extension du framework Spring spécifiquement utilisé pour les travaux par lots comme celui-ci. Si vous êtes déjà familier avec le framework Spring, définir un travail simple avec Spring Batch ne devrait pas être trop dur. (Cela peut vous aider à terminer l'application à un moment approprié sans avoir à effectuer d'interrogation).

En outre, si vous souhaitez définir des modèles SQL auxquels vous pouvez envoyer des paramètres, je vous suggère de jeter un œil à MyBatis. Cela élimine le besoin d'écrire un code JDBC et vous permet d'appeler des instructions SQL prédéfinies comme un appel de méthode avec des paramètres. Cela devrait vous permettre d'envoyer plusieurs instructions select, chacune avec un paramètre "id" différent.

+0

Merci @jstol mais je dois seulement utiliser SI et mon programme ne fonctionnera pas après un certain temps de temps fixe mais uniquement sur demande. – Jaikrat

Questions connexes