DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Java Zone»Appel de procédures stockées avec des paramètres IN et OUT à partir de Spring Data JPA
    Java Zone

    Appel de procédures stockées avec des paramètres IN et OUT à partir de Spring Data JPA

    novembre 17, 2021
    Appel de procédures stockées avec des paramètres IN et OUT à partir de Spring Data JPA
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    L’écriture de ce blog est le résultat du fait qu’il m’a fallu du temps pour comprendre comment configurer le paramètre OUT en appelant les procédures stockées à l’aide de Spring JPA.

    Considérez la procédure stockée suivante :

    CREATE OR REPLACE 
       PROCEDURE in_only (inParam IN VARCHAR2) AS
       BEGIN
          DBMS_OUTPUT.PUT_LINE('in_only');
       END in_only;
    /
    
    
    CREATE OR REPLACE 
       PROCEDURE in_and_out (inParam IN VARCHAR2, outParam OUT VARCHAR2) AS
       BEGIN
          outParam := 'Done outParam , and this is my inParam ' || inParam;
       END in_and_out;
    /
    

    Ici, nous avons deux procédures :

    • dans seulement: prend un paramètre d’entrée (inParam) mais ne renvoie pas de valeur
    • dedans et dehors: prend un paramètre d’entrée (inParam) et renvoie une valeur (outParam)

    Nous pouvons ensuite appeler les procédures stockées à l’aide de l’implémentation du référentiel Spring Data JPA comme ci-dessous :

    @Repository
    public interface MytableRepository extends JpaRepository<Mytable, String> {
    
    	@Procedure(procedureName = "in_only")
    	void inOnly(@Param("inParam") String inParam);
    
    	@Procedure(procedureName = "in_and_out", outputParameterName = "outParam")
    	String inAndOut(@Param("inParam") String inParam);
    }
    

    Points clés

    • procedureName : doit correspondre au nom de la procédure stockée créée.
    • Définissez le paramètre IN à l’aide de @Param.
    • Définissez le paramètre OUT à l’aide de outputParameterName = » ».
    • @Param et outputParameterName : doivent correspondre au nom du paramètre dans la procédure Stored.
    • Les types de retour doivent correspondre, donc in_only est void et in_and_out renvoie String.

    Essai

    @SpringBootTest
    public class WebApplicationTests {
    
    	@Test
    	public void contextLoads() {
    	}
    
    	@Autowired
    	private MytableRepository repo;
    
    	@Test
    	public void inOnlyTest() {
    		String inParam = "Hi Im an inputParam";
    		repo.inOnly(inParam);
    	}
    
    	@Test
    	public void inAndOutTest() {
    		String inParam = "From inputParam";
    		String outParam = repo.inAndOut(inParam);
    		System.out.println(outParam);
    	}
    }
    

    Sortir

    2021-10-31 13:43:21 DEBUG org.hibernate.SQL - {call in_and_out(?,?)}
    Hibernate: {call in_and_out(?,?)}
    Done outParam , and this is my inParam From inputParam
    
    2021-10-31 13:43:22 DEBUG org.hibernate.SQL - {call in_only(?)}
    Hibernate: {call in_only(?)}
    

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.